[SNDVOL32] Advanced controls dialog: Remove the TBS_AUTOTICKS style from the trackbar...
[reactos.git] / base / services / nfsd / from_kernel.h
1 /* NFSv4.1 client for Windows
2 * Copyright © 2012 The Regents of the University of Michigan
3 *
4 * Olga Kornievskaia <aglo@umich.edu>
5 * Casey Bodley <cbodley@umich.edu>
6 *
7 * This library is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation; either version 2.1 of the License, or (at
10 * your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful, but
13 * without any warranty; without even the implied warranty of merchantability
14 * or fitness for a particular purpose. See the GNU Lesser General Public
15 * License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public License
18 * along with this library; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20 */
21
22 #ifndef _NFS41_DAEMON_
23 #define _NFS41_DAEMON_
24
25 #define FILE_DIRECTORY_FILE 0x00000001
26 #define FILE_WRITE_THROUGH 0x00000002
27 #define FILE_SEQUENTIAL_ONLY 0x00000004
28 #define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008
29
30 #define FILE_SYNCHRONOUS_IO_ALERT 0x00000010
31 #define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020
32 #define FILE_NON_DIRECTORY_FILE 0x00000040
33 #define FILE_CREATE_TREE_CONNECTION 0x00000080
34
35 #define FILE_COMPLETE_IF_OPLOCKED 0x00000100
36 #define FILE_NO_EA_KNOWLEDGE 0x00000200
37 #define FILE_OPEN_REMOTE_INSTANCE 0x00000400
38 #define FILE_RANDOM_ACCESS 0x00000800
39
40 #define FILE_DELETE_ON_CLOSE 0x00001000
41 #define FILE_OPEN_BY_FILE_ID 0x00002000
42 #define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000
43 #define FILE_NO_COMPRESSION 0x00008000
44
45 #define FILE_RESERVE_OPFILTER 0x00100000
46 #define FILE_OPEN_REPARSE_POINT 0x00200000
47 #define FILE_OPEN_NO_RECALL 0x00400000
48 #define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000
49
50 #define FILE_COPY_STRUCTURED_STORAGE 0x00000041
51 #define FILE_STRUCTURED_STORAGE 0x00000441
52
53 #define FILE_SUPERSEDE 0x00000000
54 #define FILE_OPEN 0x00000001
55 #define FILE_CREATE 0x00000002
56 #define FILE_OPEN_IF 0x00000003
57 #define FILE_OVERWRITE 0x00000004
58 #define FILE_OVERWRITE_IF 0x00000005
59 #define FILE_MAXIMUM_DISPOSITION 0x00000005
60
61 typedef enum _FILE_INFORMATION_CLASS {
62 FileDirectoryInformation = 1,
63 FileFullDirectoryInformation, // 2
64 FileBothDirectoryInformation, // 3
65 FileBasicInformation, // 4
66 FileStandardInformation, // 5
67 FileInternalInformation, // 6
68 FileEaInformation, // 7
69 FileAccessInformation, // 8
70 FileNameInformation, // 9
71 FileRenameInformation, // 10
72 FileLinkInformation, // 11
73 FileNamesInformation, // 12
74 FileDispositionInformation, // 13
75 FilePositionInformation, // 14
76 FileFullEaInformation, // 15
77 FileModeInformation, // 16
78 FileAlignmentInformation, // 17
79 FileAllInformation, // 18
80 FileAllocationInformation, // 19
81 FileEndOfFileInformation, // 20
82 FileAlternateNameInformation, // 21
83 FileStreamInformation, // 22
84 FilePipeInformation, // 23
85 FilePipeLocalInformation, // 24
86 FilePipeRemoteInformation, // 25
87 FileMailslotQueryInformation, // 26
88 FileMailslotSetInformation, // 27
89 FileCompressionInformation, // 28
90 FileObjectIdInformation, // 29
91 FileCompletionInformation, // 30
92 FileMoveClusterInformation, // 31
93 FileQuotaInformation, // 32
94 FileReparsePointInformation, // 33
95 FileNetworkOpenInformation, // 34
96 FileAttributeTagInformation, // 35
97 FileTrackingInformation, // 36
98 FileIdBothDirectoryInformation, // 37
99 FileIdFullDirectoryInformation, // 38
100 FileValidDataLengthInformation, // 39
101 FileShortNameInformation, // 40
102 FileIoCompletionNotificationInformation, // 41
103 FileIoStatusBlockRangeInformation, // 42
104 FileIoPriorityHintInformation, // 43
105 FileSfioReserveInformation, // 44
106 FileSfioVolumeInformation, // 45
107 FileHardLinkInformation, // 46
108 FileProcessIdsUsingFileInformation, // 47
109 FileNormalizedNameInformation, // 48
110 FileNetworkPhysicalNameInformation, // 49
111 FileIdGlobalTxDirectoryInformation, // 50
112 FileMaximumInformation
113 } FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
114
115
116 /* kernel structures for QueryDirectory results */
117 typedef struct _FILE_NAMES_INFORMATION {
118 ULONG NextEntryOffset;
119 ULONG FileIndex;
120 ULONG FileNameLength;
121 WCHAR FileName[1];
122 } FILE_NAMES_INFORMATION, *PFILE_NAMES_INFORMATION;
123
124 typedef struct _FILE_DIRECTORY_INFO {
125 ULONG NextEntryOffset;
126 ULONG FileIndex;
127 LARGE_INTEGER CreationTime;
128 LARGE_INTEGER LastAccessTime;
129 LARGE_INTEGER LastWriteTime;
130 LARGE_INTEGER ChangeTime;
131 LARGE_INTEGER EndOfFile;
132 LARGE_INTEGER AllocationSize;
133 ULONG FileAttributes;
134 ULONG FileNameLength;
135 WCHAR FileName[1];
136 } FILE_DIRECTORY_INFO, *PFILE_DIRECTORY_INFO;
137
138 typedef struct _FILE_BOTH_DIR_INFORMATION {
139 ULONG NextEntryOffset;
140 ULONG FileIndex;
141 LARGE_INTEGER CreationTime;
142 LARGE_INTEGER LastAccessTime;
143 LARGE_INTEGER LastWriteTime;
144 LARGE_INTEGER ChangeTime;
145 LARGE_INTEGER EndOfFile;
146 LARGE_INTEGER AllocationSize;
147 ULONG FileAttributes;
148 ULONG FileNameLength;
149 ULONG EaSize;
150 CCHAR ShortNameLength;
151 WCHAR ShortName[12];
152 WCHAR FileName[1];
153 } FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION;
154
155 typedef struct _FILE_FULL_DIR_INFO {
156 ULONG NextEntryOffset;
157 ULONG FileIndex;
158 LARGE_INTEGER CreationTime;
159 LARGE_INTEGER LastAccessTime;
160 LARGE_INTEGER LastWriteTime;
161 LARGE_INTEGER ChangeTime;
162 LARGE_INTEGER EndOfFile;
163 LARGE_INTEGER AllocationSize;
164 ULONG FileAttributes;
165 ULONG FileNameLength;
166 ULONG EaSize;
167 WCHAR FileName[1];
168 } FILE_FULL_DIR_INFO, *PFILE_FULL_DIR_INFO;
169
170 typedef struct _FILE_ID_FULL_DIR_INFO {
171 ULONG NextEntryOffset;
172 ULONG FileIndex;
173 LARGE_INTEGER CreationTime;
174 LARGE_INTEGER LastAccessTime;
175 LARGE_INTEGER LastWriteTime;
176 LARGE_INTEGER ChangeTime;
177 LARGE_INTEGER EndOfFile;
178 LARGE_INTEGER AllocationSize;
179 ULONG FileAttributes;
180 ULONG FileNameLength;
181 ULONG EaSize;
182 LARGE_INTEGER FileId;
183 WCHAR FileName[1];
184 } FILE_ID_FULL_DIR_INFO, *PFILE_ID_FULL_DIR_INFO;
185
186 typedef struct _FILE_LINK_INFORMATION {
187 BOOLEAN ReplaceIfExists;
188 HANDLE RootDirectory;
189 ULONG FileNameLength;
190 WCHAR FileName[1];
191 } FILE_LINK_INFORMATION, *PFILE_LINK_INFORMATION;
192
193 typedef struct _FILE_FULL_EA_INFORMATION {
194 ULONG NextEntryOffset;
195 UCHAR Flags;
196 UCHAR EaNameLength;
197 USHORT EaValueLength;
198 CHAR EaName[1];
199 } FILE_FULL_EA_INFORMATION, *PFILE_FULL_EA_INFORMATION;
200
201 typedef struct _FILE_GET_EA_INFORMATION {
202 ULONG NextEntryOffset;
203 UCHAR EaNameLength;
204 CHAR EaName[1];
205 } FILE_GET_EA_INFORMATION, *PFILE_GET_EA_INFORMATION;
206
207 typedef struct _FILE_NETWORK_OPEN_INFORMATION {
208 LARGE_INTEGER CreationTime;
209 LARGE_INTEGER LastAccessTime;
210 LARGE_INTEGER LastWriteTime;
211 LARGE_INTEGER ChangeTime;
212 LARGE_INTEGER AllocationSize;
213 LARGE_INTEGER EndOfFile;
214 ULONG FileAttributes;
215 } FILE_NETWORK_OPEN_INFORMATION, *PFILE_NETWORK_OPEN_INFORMATION;
216
217 /* wdm.h */
218 typedef enum _FSINFOCLASS {
219 FileFsVolumeInformation = 1,
220 FileFsLabelInformation, // 2
221 FileFsSizeInformation, // 3
222 FileFsDeviceInformation, // 4
223 FileFsAttributeInformation, // 5
224 FileFsControlInformation, // 6
225 FileFsFullSizeInformation, // 7
226 FileFsObjectIdInformation, // 8
227 FileFsDriverPathInformation, // 9
228 FileFsVolumeFlagsInformation,// 10
229 FileFsMaximumInformation
230 } FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS;
231
232 /* ntifs.h */
233 #define FILE_CASE_SENSITIVE_SEARCH 0x00000001
234 #define FILE_CASE_PRESERVED_NAMES 0x00000002
235 #define FILE_UNICODE_ON_DISK 0x00000004
236 #define FILE_PERSISTENT_ACLS 0x00000008
237 #define FILE_FILE_COMPRESSION 0x00000010
238 #define FILE_VOLUME_QUOTAS 0x00000020
239 #define FILE_SUPPORTS_SPARSE_FILES 0x00000040
240 #define FILE_SUPPORTS_REPARSE_POINTS 0x00000080
241 #define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100
242 #define FILE_VOLUME_IS_COMPRESSED 0x00008000
243 #define FILE_SUPPORTS_OBJECT_IDS 0x00010000
244 #define FILE_SUPPORTS_ENCRYPTION 0x00020000
245 #define FILE_NAMED_STREAMS 0x00040000
246 #define FILE_READ_ONLY_VOLUME 0x00080000
247 #define FILE_SEQUENTIAL_WRITE_ONCE 0x00100000
248 #define FILE_SUPPORTS_TRANSACTIONS 0x00200000
249 #define FILE_SUPPORTS_HARD_LINKS 0x00400000
250 #define FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000
251 #define FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000
252 #define FILE_SUPPORTS_USN_JOURNAL 0x02000000
253
254 typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
255 ULONG FileSystemAttributes;
256 LONG MaximumComponentNameLength;
257 ULONG FileSystemNameLength;
258 WCHAR FileSystemName[1];
259 } FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION;
260
261 /* ntddk.h */
262 typedef struct _FILE_FS_SIZE_INFORMATION {
263 LARGE_INTEGER TotalAllocationUnits;
264 LARGE_INTEGER AvailableAllocationUnits;
265 ULONG SectorsPerAllocationUnit;
266 ULONG BytesPerSector;
267 } FILE_FS_SIZE_INFORMATION, *PFILE_FS_SIZE_INFORMATION;
268
269 typedef struct _FILE_FS_FULL_SIZE_INFORMATION {
270 LARGE_INTEGER TotalAllocationUnits;
271 LARGE_INTEGER CallerAvailableAllocationUnits;
272 LARGE_INTEGER ActualAvailableAllocationUnits;
273 ULONG SectorsPerAllocationUnit;
274 ULONG BytesPerSector;
275 } FILE_FS_FULL_SIZE_INFORMATION, *PFILE_FS_FULL_SIZE_INFORMATION;
276
277 typedef struct _FILE_INTERNAL_INFORMATION {
278 LARGE_INTEGER IndexNumber;
279 } FILE_INTERNAL_INFORMATION, *PFILE_INTERNAL_INFORMATION;
280 #endif