Reactos
at master 298 lines 7.9 kB view raw
1/* 2 * fltuser.h 3 * 4 * This file is part of the ReactOS DDK package. 5 * 6 * Contributors: 7 * Amine Khaldi (amine.khaldi@reactos.org) 8 * 9 * THIS SOFTWARE IS NOT COPYRIGHTED 10 * 11 * This source code is offered for use in the public domain. You may 12 * use, modify or distribute it freely. 13 * 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. 18 * 19 */ 20#pragma once 21 22#ifndef __FLTUSER_H__ 23#define __FLTUSER_H__ 24 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)) 29 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)) 34 35#define FLT_MGR_LONGHORN (NTDDI_VERSION >= NTDDI_VISTA) 36#define FLT_MGR_WIN7 (NTDDI_VERSION >= NTDDI_WIN7) 37 38#include <fltuserstructures.h> 39 40#ifdef __cplusplus 41extern "C" { 42#endif 43 44#if FLT_MGR_BASELINE 45 46#if FLT_MGR_LONGHORN 47#define FLT_ASSERT(_e) NT_ASSERT(_e) 48#define FLT_ASSERTMSG(_m, _e) NT_ASSERTMSG(_m, _e) 49#else 50#define FLT_ASSERT(_e) ASSERT(_e) 51#define FLT_ASSERTMSG(_m, _e) ASSERTMSG(_m, _e) 52#endif /* FLT_MGR_LONGHORN */ 53 54_Must_inspect_result_ 55HRESULT 56WINAPI 57FilterLoad( 58 _In_ LPCWSTR lpFilterName); 59 60_Must_inspect_result_ 61HRESULT 62WINAPI 63FilterUnload( 64 _In_ LPCWSTR lpFilterName); 65 66_Must_inspect_result_ 67HRESULT 68WINAPI 69FilterCreate( 70 _In_ LPCWSTR lpFilterName, 71 _Outptr_ HFILTER *hFilter); 72 73HRESULT 74WINAPI 75FilterClose( 76 _In_ HFILTER hFilter); 77 78_Must_inspect_result_ 79HRESULT 80WINAPI 81FilterInstanceCreate( 82 _In_ LPCWSTR lpFilterName, 83 _In_ LPCWSTR lpVolumeName, 84 _In_opt_ LPCWSTR lpInstanceName, 85 _Outptr_ HFILTER_INSTANCE *hInstance); 86 87HRESULT 88WINAPI 89FilterInstanceClose( 90 _In_ HFILTER_INSTANCE hInstance); 91 92_Must_inspect_result_ 93HRESULT 94WINAPI 95FilterAttach( 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); 101 102_Must_inspect_result_ 103HRESULT 104WINAPI 105FilterAttachAtAltitude( 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); 112 113_Must_inspect_result_ 114HRESULT 115WINAPI 116FilterDetach( 117 _In_ LPCWSTR lpFilterName, 118 _In_ LPCWSTR lpVolumeName, 119 _In_opt_ LPCWSTR lpInstanceName); 120 121_Must_inspect_result_ 122HRESULT 123WINAPI 124FilterFindFirst( 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); 130 131_Must_inspect_result_ 132HRESULT 133WINAPI 134FilterFindNext( 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); 140 141_Must_inspect_result_ 142HRESULT 143WINAPI 144FilterFindClose( 145 _In_ HANDLE hFilterFind); 146 147_Must_inspect_result_ 148HRESULT 149WINAPI 150FilterVolumeFindFirst( 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); 156 157_Must_inspect_result_ 158HRESULT 159WINAPI 160FilterVolumeFindNext( 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); 166 167HRESULT 168WINAPI 169FilterVolumeFindClose( 170 _In_ HANDLE hVolumeFind); 171 172_Must_inspect_result_ 173HRESULT 174WINAPI 175FilterInstanceFindFirst( 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); 182 183_Must_inspect_result_ 184HRESULT 185WINAPI 186FilterInstanceFindNext( 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); 192 193_Must_inspect_result_ 194HRESULT 195WINAPI 196FilterInstanceFindClose( 197 _In_ HANDLE hFilterInstanceFind); 198 199_Must_inspect_result_ 200HRESULT 201WINAPI 202FilterVolumeInstanceFindFirst( 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); 209 210_Must_inspect_result_ 211HRESULT 212WINAPI 213FilterVolumeInstanceFindNext( 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); 219 220HRESULT 221WINAPI 222FilterVolumeInstanceFindClose( 223 _In_ HANDLE hVolumeInstanceFind); 224 225_Must_inspect_result_ 226HRESULT 227WINAPI 228FilterGetInformation( 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); 234 235_Must_inspect_result_ 236HRESULT 237WINAPI 238FilterInstanceGetInformation( 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); 244 245_Must_inspect_result_ 246HRESULT 247WINAPI 248FilterConnectCommunicationPort( 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); 255 256_Must_inspect_result_ 257HRESULT 258WINAPI 259FilterSendMessage( 260 _In_ HANDLE hPort, 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); 266 267_Must_inspect_result_ 268HRESULT 269WINAPI 270FilterGetMessage( 271 _In_ HANDLE hPort, 272 _Out_writes_bytes_(dwMessageBufferSize) PFILTER_MESSAGE_HEADER lpMessageBuffer, 273 _In_ DWORD dwMessageBufferSize, 274 _Inout_ LPOVERLAPPED lpOverlapped); 275 276_Must_inspect_result_ 277HRESULT 278WINAPI 279FilterReplyMessage( 280 _In_ HANDLE hPort, 281 _In_reads_bytes_(dwReplyBufferSize) PFILTER_REPLY_HEADER lpReplyBuffer, 282 _In_ DWORD dwReplyBufferSize); 283 284_Must_inspect_result_ 285HRESULT 286WINAPI 287FilterGetDosName( 288 _In_ LPCWSTR lpVolumeName, 289 _Out_writes_(dwDosNameBufferSize) LPWSTR lpDosName, 290 _In_ DWORD dwDosNameBufferSize); 291 292#endif /* FLT_MGR_BASELINE */ 293 294#ifdef __cplusplus 295} /* extern "C" */ 296#endif 297 298#endif /* __FLTUSER_H__ */