xref: /reactos/ntoskrnl/include/internal/io_i.h (revision c2c66aff)
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