ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/fltuserstructures.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 7004 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /**
2 * This file is part of the mingw-w64 runtime package.
3 * No warranty is given; refer to the file DISCLAIMER within this package.
4 */
5
6 #ifndef __FLT_USER_STRUCTURES_H__
7 #define __FLT_USER_STRUCTURES_H__
8
9 #include <winapifamily.h>
10
11 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
12
13 #if ((OSVER(NTDDI_VERSION) == NTDDI_WIN2K && SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WIN2KSP4)) \
14 || (OSVER(NTDDI_VERSION) == NTDDI_WINXP && SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WINXPSP2)) \
15 || (OSVER(NTDDI_VERSION) == NTDDI_WS03 && SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WS03SP1)) \
16 || NTDDI_VERSION >= NTDDI_VISTA)
17
18 #define FLTAPI NTAPI
19
20 #define FILTER_NAME_MAX_CHARS 255
21 #define INSTANCE_NAME_MAX_CHARS 255
22 #define VOLUME_NAME_MAX_CHARS 1024
23
24 #define FILTER_NAME_MAX_BYTES (FILTER_NAME_MAX_CHARS * sizeof (WCHAR))
25 #define INSTANCE_NAME_MAX_BYTES (INSTANCE_NAME_MAX_CHARS * sizeof (WCHAR))
26 #define VOLUME_NAME_MAX_BYTES (VOLUME_NAME_MAX_CHARS * sizeof (WCHAR))
27
28 #define FLTFL_AGGREGATE_INFO_IS_MINIFILTER 1
29 #define FLTFL_AGGREGATE_INFO_IS_LEGACYFILTER 2
30
31 #if NTDDI_VERSION >= NTDDI_VISTA
32 #define FLTFL_ASI_IS_MINIFILTER 1
33 #define FLTFL_ASI_IS_LEGACYFILTER 2
34
35 #define FLTFL_IASIL_DETACHED_VOLUME 1
36 #endif
37
38 #define FLTFL_IASIM_DETACHED_VOLUME 1
39
40 #define FLTFL_IASI_IS_MINIFILTER 1
41 #define FLTFL_IASI_IS_LEGACYFILTER 2
42
43 #if NTDDI_VERSION >= NTDDI_VISTA
44 #define FLTFL_VSI_DETACHED_VOLUME 1
45 #endif
46
47 typedef HANDLE HFILTER;
48 typedef HANDLE HFILTER_INSTANCE;
49 typedef HANDLE HFILTER_VOLUME;
50
51 #if !defined (_NTDEF_) && !defined (_NTSTATUS_PSDK)
52 #define _NTSTATUS_PSDK
53 typedef LONG NTSTATUS, *PNTSTATUS;
54 #endif
55
56 typedef enum _FLT_FILESYSTEM_TYPE {
57 FLT_FSTYPE_UNKNOWN, FLT_FSTYPE_RAW, FLT_FSTYPE_NTFS, FLT_FSTYPE_FAT,
58 FLT_FSTYPE_CDFS, FLT_FSTYPE_UDFS, FLT_FSTYPE_LANMAN, FLT_FSTYPE_WEBDAV,
59 FLT_FSTYPE_RDPDR, FLT_FSTYPE_NFS, FLT_FSTYPE_MS_NETWARE, FLT_FSTYPE_NETWARE,
60 FLT_FSTYPE_BSUDF, FLT_FSTYPE_MUP, FLT_FSTYPE_RSFX, FLT_FSTYPE_ROXIO_UDF1,
61 FLT_FSTYPE_ROXIO_UDF2, FLT_FSTYPE_ROXIO_UDF3, FLT_FSTYPE_TACIT, FLT_FSTYPE_FS_REC,
62 FLT_FSTYPE_INCD, FLT_FSTYPE_INCD_FAT, FLT_FSTYPE_EXFAT, FLT_FSTYPE_PSFS,
63 FLT_FSTYPE_GPFS, FLT_FSTYPE_NPFS, FLT_FSTYPE_MSFS, FLT_FSTYPE_CSVFS,
64 FLT_FSTYPE_REFS, FLT_FSTYPE_OPENAFS
65 } FLT_FILESYSTEM_TYPE, *PFLT_FILESYSTEM_TYPE;
66
67 typedef enum _FILTER_INFORMATION_CLASS {
68 FilterFullInformation, FilterAggregateBasicInformation, FilterAggregateStandardInformation
69 } FILTER_INFORMATION_CLASS, *PFILTER_INFORMATION_CLASS;
70
71 typedef enum _INSTANCE_INFORMATION_CLASS {
72 InstanceBasicInformation, InstancePartialInformation,
73 InstanceFullInformation, InstanceAggregateStandardInformation
74 } INSTANCE_INFORMATION_CLASS, *PINSTANCE_INFORMATION_CLASS;
75
76 typedef enum _FILTER_VOLUME_INFORMATION_CLASS {
77 FilterVolumeBasicInformation, FilterVolumeStandardInformation
78 } FILTER_VOLUME_INFORMATION_CLASS, *PFILTER_VOLUME_INFORMATION_CLASS;
79
80 typedef struct _FILTER_FULL_INFORMATION {
81 ULONG NextEntryOffset;
82 ULONG FrameID;
83 ULONG NumberOfInstances;
84 USHORT FilterNameLength;
85 WCHAR FilterNameBuffer[1];
86 } FILTER_FULL_INFORMATION, *PFILTER_FULL_INFORMATION;
87
88 typedef struct _FILTER_AGGREGATE_BASIC_INFORMATION {
89 ULONG NextEntryOffset;
90 ULONG Flags;
91 union {
92 struct {
93 ULONG FrameID;
94 ULONG NumberOfInstances;
95 USHORT FilterNameLength;
96 USHORT FilterNameBufferOffset;
97 USHORT FilterAltitudeLength;
98 USHORT FilterAltitudeBufferOffset;
99 } MiniFilter;
100 struct {
101 USHORT FilterNameLength;
102 USHORT FilterNameBufferOffset;
103 } LegacyFilter;
104 } Type;
105 } FILTER_AGGREGATE_BASIC_INFORMATION, *PFILTER_AGGREGATE_BASIC_INFORMATION;
106
107 #if NTDDI_VERSION >= NTDDI_VISTA
108 typedef struct _FILTER_AGGREGATE_STANDARD_INFORMATION {
109 ULONG NextEntryOffset;
110 ULONG Flags;
111 union {
112 struct {
113 ULONG Flags;
114 ULONG FrameID;
115 ULONG NumberOfInstances;
116 USHORT FilterNameLength;
117 USHORT FilterNameBufferOffset;
118 USHORT FilterAltitudeLength;
119 USHORT FilterAltitudeBufferOffset;
120 } MiniFilter;
121 struct {
122 ULONG Flags;
123 USHORT FilterNameLength;
124 USHORT FilterNameBufferOffset;
125 USHORT FilterAltitudeLength;
126 USHORT FilterAltitudeBufferOffset;
127 } LegacyFilter;
128 } Type;
129 } FILTER_AGGREGATE_STANDARD_INFORMATION, *PFILTER_AGGREGATE_STANDARD_INFORMATION;
130 #endif
131
132 typedef struct _FILTER_VOLUME_BASIC_INFORMATION {
133 USHORT FilterVolumeNameLength;
134 WCHAR FilterVolumeName[1];
135 } FILTER_VOLUME_BASIC_INFORMATION, *PFILTER_VOLUME_BASIC_INFORMATION;
136
137 #if NTDDI_VERSION >= NTDDI_VISTA
138 typedef struct _FILTER_VOLUME_STANDARD_INFORMATION {
139 ULONG NextEntryOffset;
140 ULONG Flags;
141 ULONG FrameID;
142 FLT_FILESYSTEM_TYPE FileSystemType;
143 USHORT FilterVolumeNameLength;
144 WCHAR FilterVolumeName[1];
145 } FILTER_VOLUME_STANDARD_INFORMATION, *PFILTER_VOLUME_STANDARD_INFORMATION;
146 #endif
147
148 typedef struct _INSTANCE_BASIC_INFORMATION {
149 ULONG NextEntryOffset;
150 USHORT InstanceNameLength;
151 USHORT InstanceNameBufferOffset;
152 } INSTANCE_BASIC_INFORMATION, *PINSTANCE_BASIC_INFORMATION;
153
154 typedef struct _INSTANCE_PARTIAL_INFORMATION {
155 ULONG NextEntryOffset;
156 USHORT InstanceNameLength;
157 USHORT InstanceNameBufferOffset;
158 USHORT AltitudeLength;
159 USHORT AltitudeBufferOffset;
160 } INSTANCE_PARTIAL_INFORMATION, *PINSTANCE_PARTIAL_INFORMATION;
161
162 typedef struct _INSTANCE_FULL_INFORMATION {
163 ULONG NextEntryOffset;
164 USHORT InstanceNameLength;
165 USHORT InstanceNameBufferOffset;
166 USHORT AltitudeLength;
167 USHORT AltitudeBufferOffset;
168 USHORT VolumeNameLength;
169 USHORT VolumeNameBufferOffset;
170 USHORT FilterNameLength;
171 USHORT FilterNameBufferOffset;
172 } INSTANCE_FULL_INFORMATION, *PINSTANCE_FULL_INFORMATION;
173
174 #if NTDDI_VERSION >= NTDDI_VISTA
175 typedef struct _INSTANCE_AGGREGATE_STANDARD_INFORMATION {
176 ULONG NextEntryOffset;
177 ULONG Flags;
178 union {
179 struct {
180 ULONG Flags;
181 ULONG FrameID;
182 FLT_FILESYSTEM_TYPE VolumeFileSystemType;
183 USHORT InstanceNameLength;
184 USHORT InstanceNameBufferOffset;
185 USHORT AltitudeLength;
186 USHORT AltitudeBufferOffset;
187 USHORT VolumeNameLength;
188 USHORT VolumeNameBufferOffset;
189 USHORT FilterNameLength;
190 USHORT FilterNameBufferOffset;
191 #if NTDDI_VERSION >= NTDDI_WIN8
192 ULONG SupportedFeatures;
193 #endif
194 } MiniFilter;
195 struct {
196 ULONG Flags;
197 USHORT AltitudeLength;
198 USHORT AltitudeBufferOffset;
199 USHORT VolumeNameLength;
200 USHORT VolumeNameBufferOffset;
201 USHORT FilterNameLength;
202 USHORT FilterNameBufferOffset;
203 #if NTDDI_VERSION >= NTDDI_WIN8
204 ULONG SupportedFeatures;
205 #endif
206 } LegacyFilter;
207 } Type;
208 } INSTANCE_AGGREGATE_STANDARD_INFORMATION, *PINSTANCE_AGGREGATE_STANDARD_INFORMATION;
209 #endif
210
211 typedef struct _FILTER_MESSAGE_HEADER {
212 ULONG ReplyLength;
213 ULONGLONG MessageId;
214 } FILTER_MESSAGE_HEADER, *PFILTER_MESSAGE_HEADER;
215
216 typedef struct _FILTER_REPLY_HEADER {
217 NTSTATUS Status;
218 ULONGLONG MessageId;
219 } FILTER_REPLY_HEADER, *PFILTER_REPLY_HEADER;
220 #endif
221
222 #endif /* WINAPI_PARTITION_DESKTOP. */
223
224 #endif /* __FLT_USER_STRUCTURES_H__ */