1 /* 2 * PROJECT: ReactOS Kernel 3 * LICENSE: GPL - See COPYING in the top level directory 4 * FILE: ntoskrnl/include/internal/io_i.h 5 * PURPOSE: Info Classes for the I/O Manager 6 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) 7 */ 8 9 // 10 // File Information Classes 11 // 12 UCHAR IopQueryOperationLength[] = 13 { 14 0, 15 0, 16 0, 17 0, 18 sizeof(FILE_BASIC_INFORMATION), 19 sizeof(FILE_STANDARD_INFORMATION), 20 sizeof(FILE_INTERNAL_INFORMATION), 21 sizeof(FILE_EA_INFORMATION), 22 sizeof(FILE_ACCESS_INFORMATION), 23 sizeof(FILE_NAME_INFORMATION), 24 0, 25 0, 26 0, 27 0, 28 sizeof(FILE_POSITION_INFORMATION), 29 0, 30 sizeof(FILE_MODE_INFORMATION), 31 sizeof(FILE_ALIGNMENT_INFORMATION), 32 sizeof(FILE_ALL_INFORMATION), 33 0, 34 0, 35 sizeof(FILE_NAME_INFORMATION), 36 sizeof(FILE_STREAM_INFORMATION), 37 sizeof(FILE_PIPE_INFORMATION), 38 sizeof(FILE_PIPE_LOCAL_INFORMATION), 39 sizeof(FILE_PIPE_REMOTE_INFORMATION), 40 sizeof(FILE_MAILSLOT_QUERY_INFORMATION), 41 0, 42 sizeof(FILE_COMPRESSION_INFORMATION), 43 sizeof(FILE_OBJECTID_INFORMATION), 44 0, 45 0, 46 sizeof(FILE_QUOTA_INFORMATION), 47 sizeof(FILE_REPARSE_POINT_INFORMATION), 48 sizeof(FILE_NETWORK_OPEN_INFORMATION), 49 sizeof(FILE_ATTRIBUTE_TAG_INFORMATION), 50 0, 51 0, 52 0, 53 0, 54 0, 55 #if 0 // VISTA 56 sizeof(FILE_IO_COMPLETION_NOTIFICATION_INFORMATION), 57 sizeof(FILE_IOSTATUSBLOCK_RANGE_INFORMATION), 58 sizeof(FILE_IO_PRIORITY_HINT_INFORMATION), 59 sizeof(FILE_SFIO_RESERVE_INFORMATION), 60 sizeof(FILE_SFIO_VOLUME_INFORMATION), 61 0, 62 sizeof(FILE_PROCESS_IDS_USING_FILE_INFORMATION), 63 0, 64 sizeof(FILE_NETWORK_PHYSICAL_NAME_INFORMATION), 65 #endif 66 0xFF 67 }; 68 69 UCHAR IopSetOperationLength[] = 70 { 71 0, 72 0, 73 0, 74 0, 75 sizeof(FILE_BASIC_INFORMATION), 76 0, 77 0, 78 0, 79 0, 80 0, 81 sizeof(FILE_RENAME_INFORMATION), 82 sizeof(FILE_LINK_INFORMATION), 83 0, 84 sizeof(FILE_DISPOSITION_INFORMATION), 85 sizeof(FILE_POSITION_INFORMATION), 86 0, 87 sizeof(FILE_MODE_INFORMATION), 88 0, 89 0, 90 sizeof(FILE_ALLOCATION_INFORMATION), 91 sizeof(FILE_END_OF_FILE_INFORMATION), 92 0, 93 0, 94 sizeof(FILE_PIPE_INFORMATION), 95 0, 96 0, 97 0, 98 sizeof(FILE_MAILSLOT_SET_INFORMATION), 99 0, 100 sizeof(FILE_OBJECTID_INFORMATION), 101 sizeof(FILE_COMPLETION_INFORMATION), 102 sizeof(FILE_MOVE_CLUSTER_INFORMATION), 103 sizeof(FILE_QUOTA_INFORMATION), 104 0, 105 0, 106 0, 107 sizeof(FILE_TRACKING_INFORMATION), 108 0, 109 0, 110 sizeof(FILE_VALID_DATA_LENGTH_INFORMATION), 111 sizeof(UNICODE_STRING), 112 0xFF 113 }; 114 115 ACCESS_MASK IopQueryOperationAccess[] = 116 { 117 0, 118 0, 119 0, 120 0, 121 FILE_READ_ATTRIBUTES, 122 0, 123 0, 124 0, 125 0, 126 0, 127 0, 128 0, 129 0, 130 0, 131 0, 132 FILE_READ_EA, 133 0, 134 0, 135 FILE_READ_ATTRIBUTES, 136 0, 137 0, 138 0, 139 0, 140 FILE_READ_ATTRIBUTES, 141 FILE_READ_ATTRIBUTES, 142 FILE_READ_ATTRIBUTES, 143 0, 144 0, 145 0, 146 0, 147 0, 148 0, 149 0, 150 0, 151 FILE_READ_ATTRIBUTES, 152 FILE_READ_ATTRIBUTES, 153 0, 154 0, 155 0, 156 0, 157 0, 158 0xFFFFFFFF 159 }; 160 161 ACCESS_MASK IopSetOperationAccess[] = 162 { 163 0, 164 0, 165 0, 166 0, 167 FILE_WRITE_ATTRIBUTES, 168 0, 169 0, 170 0, 171 0, 172 0, 173 DELETE, 174 0, 175 0, 176 DELETE, 177 0, 178 FILE_WRITE_EA, 179 0, 180 0, 181 0, 182 FILE_WRITE_DATA, 183 FILE_WRITE_DATA, 184 0, 185 0, 186 FILE_WRITE_ATTRIBUTES, 187 0, 188 FILE_WRITE_ATTRIBUTES, 189 0, 190 0, 191 0, 192 0, 193 0, 194 FILE_WRITE_DATA, 195 0, 196 0, 197 0, 198 0, 199 FILE_WRITE_DATA, 200 0, 201 0, 202 FILE_WRITE_DATA, 203 DELETE, 204 0xFFFFFFFF 205 }; 206 207 // 208 // Volume Information Classes 209 // 210 UCHAR IopQueryFsOperationLength[] = 211 { 212 0, 213 sizeof(FILE_FS_VOLUME_INFORMATION), 214 0, 215 sizeof(FILE_FS_SIZE_INFORMATION), 216 sizeof(FILE_FS_DEVICE_INFORMATION), 217 sizeof(FILE_FS_ATTRIBUTE_INFORMATION), 218 sizeof(FILE_FS_CONTROL_INFORMATION), 219 sizeof(FILE_FS_FULL_SIZE_INFORMATION), 220 sizeof(FILE_FS_OBJECTID_INFORMATION), 221 sizeof(FILE_FS_DRIVER_PATH_INFORMATION), 222 #if 0 // VISTA 223 sizeof(FILE_FS_VOLUME_FLAGS_INFORMATION), 224 #endif 225 0xFF 226 }; 227 228 UCHAR IopSetFsOperationLength[] = 229 { 230 0, 231 0, 232 sizeof(FILE_FS_LABEL_INFORMATION), 233 0, 234 0, 235 0, 236 sizeof(FILE_FS_CONTROL_INFORMATION), 237 0, 238 sizeof(FILE_FS_OBJECTID_INFORMATION), 239 0, 240 #if 0 // VISTA 241 sizeof(FILE_FS_VOLUME_FLAGS_INFORMATION), 242 #endif 243 0xFF 244 }; 245 246 ULONG IopQueryFsOperationAccess[] = 247 { 248 0, 249 0, 250 0, 251 0, 252 0, 253 0, 254 FILE_READ_DATA, 255 0, 256 0, 257 0, 258 #if 0 // VISTA 259 0, 260 #endif 261 0xFFFFFFFF 262 }; 263 264 ULONG IopSetFsOperationAccess[] = 265 { 266 0, 267 0, 268 FILE_WRITE_DATA, 269 0, 270 0, 271 0, 272 FILE_WRITE_DATA, 273 0, 274 FILE_WRITE_DATA, 275 0, 276 #if 0 // VISTA 277 0, 278 #endif 279 0xFFFFFFFF 280 }; 281