4 * This file is part of the ReactOS DDK package.
7 * Amine Khaldi (amine.khaldi@reactos.org)
9 * THIS SOFTWARE IS NOT COPYRIGHTED
11 * This source code is offered for use in the public domain. You may
12 * use, modify or distribute it freely.
14 * This code is distributed in the hope that it will be useful but
15 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
16 * DISCLAIMED. This includes but is not limited to warranties of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
25 #define FLT_MGR_BASELINE (((OSVER(NTDDI_VERSION) == NTDDI_WIN2K) && (SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WIN2KSP4))) || \
26 ((OSVER(NTDDI_VERSION) == NTDDI_WINXP) && (SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WINXPSP2))) || \
27 ((OSVER(NTDDI_VERSION) == NTDDI_WS03) && (SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WS03SP1))) || \
28 (NTDDI_VERSION >= NTDDI_VISTA))
30 #define FLT_MGR_AFTER_XPSP2 (((OSVER(NTDDI_VERSION) == NTDDI_WIN2K) && (SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WIN2KSP4))) || \
31 ((OSVER(NTDDI_VERSION) == NTDDI_WINXP) && (SPVER(NTDDI_VERSION) > SPVER(NTDDI_WINXPSP2))) || \
32 ((OSVER(NTDDI_VERSION) == NTDDI_WS03) && (SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WS03SP1))) || \
33 (NTDDI_VERSION >= NTDDI_VISTA))
35 #define FLT_MGR_LONGHORN (NTDDI_VERSION >= NTDDI_VISTA)
36 #define FLT_MGR_WIN7 (NTDDI_VERSION >= NTDDI_WIN7)
38 #include <fltuserstructures.h>
47 #define FLT_ASSERT(_e) NT_ASSERT(_e)
48 #define FLT_ASSERTMSG(_m, _e) NT_ASSERTMSG(_m, _e)
50 #define FLT_ASSERT(_e) ASSERT(_e)
51 #define FLT_ASSERTMSG(_m, _e) ASSERTMSG(_m, _e)
52 #endif /* FLT_MGR_LONGHORN */
58 _In_ LPCWSTR lpFilterName
);
64 _In_ LPCWSTR lpFilterName
);
70 _In_ LPCWSTR lpFilterName
,
71 _Outptr_ HFILTER
*hFilter
);
76 _In_ HFILTER hFilter
);
82 _In_ LPCWSTR lpFilterName
,
83 _In_ LPCWSTR lpVolumeName
,
84 _In_opt_ LPCWSTR lpInstanceName
,
85 _Outptr_ HFILTER_INSTANCE
*hInstance
);
90 _In_ HFILTER_INSTANCE hInstance
);
96 _In_ LPCWSTR lpFilterName
,
97 _In_ LPCWSTR lpVolumeName
,
98 _In_opt_ LPCWSTR lpInstanceName
,
99 _In_opt_ DWORD dwCreatedInstanceNameLength
,
100 _Out_writes_bytes_opt_(dwCreatedInstanceNameLength
) LPWSTR lpCreatedInstanceName
);
102 _Must_inspect_result_
105 FilterAttachAtAltitude(
106 _In_ LPCWSTR lpFilterName
,
107 _In_ LPCWSTR lpVolumeName
,
108 _In_ LPCWSTR lpAltitude
,
109 _In_opt_ LPCWSTR lpInstanceName
,
110 _In_opt_ DWORD dwCreatedInstanceNameLength
,
111 _Out_writes_bytes_opt_(dwCreatedInstanceNameLength
) LPWSTR lpCreatedInstanceName
);
113 _Must_inspect_result_
117 _In_ LPCWSTR lpFilterName
,
118 _In_ LPCWSTR lpVolumeName
,
119 _In_opt_ LPCWSTR lpInstanceName
);
121 _Must_inspect_result_
125 _In_ FILTER_INFORMATION_CLASS dwInformationClass
,
126 _Out_writes_bytes_to_(dwBufferSize
,*lpBytesReturned
) LPVOID lpBuffer
,
127 _In_ DWORD dwBufferSize
,
128 _Out_ LPDWORD lpBytesReturned
,
129 _Out_ LPHANDLE lpFilterFind
);
131 _Must_inspect_result_
135 _In_ HANDLE hFilterFind
,
136 _In_ FILTER_INFORMATION_CLASS dwInformationClass
,
137 _Out_writes_bytes_to_(dwBufferSize
,*lpBytesReturned
) LPVOID lpBuffer
,
138 _In_ DWORD dwBufferSize
,
139 _Out_ LPDWORD lpBytesReturned
);
141 _Must_inspect_result_
145 _In_ HANDLE hFilterFind
);
147 _Must_inspect_result_
150 FilterVolumeFindFirst(
151 _In_ FILTER_VOLUME_INFORMATION_CLASS dwInformationClass
,
152 _Out_writes_bytes_to_(dwBufferSize
,*lpBytesReturned
) LPVOID lpBuffer
,
153 _In_ DWORD dwBufferSize
,
154 _Out_ LPDWORD lpBytesReturned
,
155 _Out_ PHANDLE lpVolumeFind
);
157 _Must_inspect_result_
160 FilterVolumeFindNext(
161 _In_ HANDLE hVolumeFind
,
162 _In_ FILTER_VOLUME_INFORMATION_CLASS dwInformationClass
,
163 _Out_writes_bytes_to_(dwBufferSize
,*lpBytesReturned
) LPVOID lpBuffer
,
164 _In_ DWORD dwBufferSize
,
165 _Out_ LPDWORD lpBytesReturned
);
169 FilterVolumeFindClose(
170 _In_ HANDLE hVolumeFind
);
172 _Must_inspect_result_
175 FilterInstanceFindFirst(
176 _In_ LPCWSTR lpFilterName
,
177 _In_ INSTANCE_INFORMATION_CLASS dwInformationClass
,
178 _Out_writes_bytes_to_(dwBufferSize
,*lpBytesReturned
) LPVOID lpBuffer
,
179 _In_ DWORD dwBufferSize
,
180 _Out_ LPDWORD lpBytesReturned
,
181 _Out_ LPHANDLE lpFilterInstanceFind
);
183 _Must_inspect_result_
186 FilterInstanceFindNext(
187 _In_ HANDLE hFilterInstanceFind
,
188 _In_ INSTANCE_INFORMATION_CLASS dwInformationClass
,
189 _Out_writes_bytes_to_(dwBufferSize
,*lpBytesReturned
) LPVOID lpBuffer
,
190 _In_ DWORD dwBufferSize
,
191 _Out_ LPDWORD lpBytesReturned
);
193 _Must_inspect_result_
196 FilterInstanceFindClose(
197 _In_ HANDLE hFilterInstanceFind
);
199 _Must_inspect_result_
202 FilterVolumeInstanceFindFirst(
203 _In_ LPCWSTR lpVolumeName
,
204 _In_ INSTANCE_INFORMATION_CLASS dwInformationClass
,
205 _Out_writes_bytes_to_(dwBufferSize
,*lpBytesReturned
) LPVOID lpBuffer
,
206 _In_ DWORD dwBufferSize
,
207 _Out_ LPDWORD lpBytesReturned
,
208 _Out_ LPHANDLE lpVolumeInstanceFind
);
210 _Must_inspect_result_
213 FilterVolumeInstanceFindNext(
214 _In_ HANDLE hVolumeInstanceFind
,
215 _In_ INSTANCE_INFORMATION_CLASS dwInformationClass
,
216 _Out_writes_bytes_to_(dwBufferSize
,*lpBytesReturned
) LPVOID lpBuffer
,
217 _In_ DWORD dwBufferSize
,
218 _Out_ LPDWORD lpBytesReturned
);
222 FilterVolumeInstanceFindClose(
223 _In_ HANDLE hVolumeInstanceFind
);
225 _Must_inspect_result_
228 FilterGetInformation(
229 _In_ HFILTER hFilter
,
230 _In_ FILTER_INFORMATION_CLASS dwInformationClass
,
231 _Out_writes_bytes_to_(dwBufferSize
,*lpBytesReturned
) LPVOID lpBuffer
,
232 _In_ DWORD dwBufferSize
,
233 _Out_ LPDWORD lpBytesReturned
);
235 _Must_inspect_result_
238 FilterInstanceGetInformation(
239 _In_ HFILTER_INSTANCE hInstance
,
240 _In_ INSTANCE_INFORMATION_CLASS dwInformationClass
,
241 _Out_writes_bytes_to_(dwBufferSize
,*lpBytesReturned
) LPVOID lpBuffer
,
242 _In_ DWORD dwBufferSize
,
243 _Out_ LPDWORD lpBytesReturned
);
245 _Must_inspect_result_
248 FilterConnectCommunicationPort(
249 _In_ LPCWSTR lpPortName
,
250 _In_ DWORD dwOptions
,
251 _In_reads_bytes_opt_(wSizeOfContext
) LPCVOID lpContext
,
252 _In_ WORD wSizeOfContext
,
253 _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes
,
254 _Outptr_ HANDLE
*hPort
);
256 _Must_inspect_result_
261 _In_reads_bytes_opt_(dwInBufferSize
) LPVOID lpInBuffer
,
262 _In_ DWORD dwInBufferSize
,
263 _Out_writes_bytes_to_opt_(dwOutBufferSize
,*lpBytesReturned
) LPVOID lpOutBuffer
,
264 _In_ DWORD dwOutBufferSize
,
265 _Out_ LPDWORD lpBytesReturned
);
267 _Must_inspect_result_
272 _Out_writes_bytes_(dwMessageBufferSize
) PFILTER_MESSAGE_HEADER lpMessageBuffer
,
273 _In_ DWORD dwMessageBufferSize
,
274 _Inout_ LPOVERLAPPED lpOverlapped
);
276 _Must_inspect_result_
281 _In_reads_bytes_(dwReplyBufferSize
) PFILTER_REPLY_HEADER lpReplyBuffer
,
282 _In_ DWORD dwReplyBufferSize
);
284 _Must_inspect_result_
288 _In_ LPCWSTR lpVolumeName
,
289 _Out_writes_(dwDosNameBufferSize
) LPWSTR lpDosName
,
290 _In_ DWORD dwDosNameBufferSize
);
292 #endif /* FLT_MGR_BASELINE */
298 #endif /* __FLTUSER_H__ */