[HEADERS]
[reactos.git] / reactos / ntoskrnl / include / internal / io_i.h
1 /*
2 * PROJECT: ReactOS Kernel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: ntoskrnl/include/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 };