Home | History | Annotate | Download | only in include
      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 __FLTUSER_H__
      7 #define __FLTUSER_H__
      8 
      9 #include <winapifamily.h>
     10 #include <sdkddkver.h>
     11 
     12 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
     13 
     14 #include <fltuserstructures.h>
     15 
     16 #if ((OSVER(NTDDI_VERSION) == NTDDI_WIN2K && SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WIN2KSP4)) \
     17      || (OSVER(NTDDI_VERSION) == NTDDI_WINXP && SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WINXPSP2)) \
     18      || (OSVER(NTDDI_VERSION) == NTDDI_WS03 && SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WS03SP1)) \
     19      || NTDDI_VERSION >= NTDDI_VISTA)
     20 
     21 #ifdef __cplusplus
     22 extern "C" {
     23 #endif
     24 
     25 #define FLT_ASSERT(e)
     26 #define FLT_ASSERTMSG(m, e)
     27 
     28 HRESULT WINAPI FilterAttach(LPCWSTR lpFilterName, LPCWSTR lpVolumeName, LPCWSTR lpInstanceName, DWORD dwCreatedInstanceNameLength, LPWSTR lpCreatedInstanceName);
     29 HRESULT WINAPI FilterAttachAtAltitude(LPCWSTR lpFilterName, LPCWSTR lpVolumeName, LPCWSTR lpAltitude, LPCWSTR lpInstanceName, DWORD dwCreatedInstanceNameLength, LPWSTR lpCreatedInstanceName);
     30 HRESULT WINAPI FilterClose(HFILTER hFilter);
     31 HRESULT WINAPI FilterConnectCommunicationPort(LPCWSTR lpPortName, DWORD dwOptions, LPCVOID lpContext, WORD wSizeOfContext, LPSECURITY_ATTRIBUTES lpSecurityAttributes, HANDLE *hPort);
     32 HRESULT WINAPI FilterCreate(LPCWSTR lpFilterName, HFILTER *hFilter);
     33 HRESULT WINAPI FilterDetach(LPCWSTR lpFilterName, LPCWSTR lpVolumeName, LPCWSTR lpInstanceName);
     34 HRESULT WINAPI FilterFindClose(HANDLE hFilterFind);
     35 HRESULT WINAPI FilterFindFirst(FILTER_INFORMATION_CLASS dwInformationClass, LPVOID lpBuffer, DWORD dwBufferSize, LPDWORD lpBytesReturned, LPHANDLE lpFilterFind);
     36 HRESULT WINAPI FilterFindNext(HANDLE hFilterFind, FILTER_INFORMATION_CLASS dwInformationClass, LPVOID lpBuffer, DWORD dwBufferSize, LPDWORD lpBytesReturned);
     37 HRESULT WINAPI FilterGetDosName(LPCWSTR lpVolumeName, LPWSTR lpDosName, DWORD dwDosNameBufferSize);
     38 HRESULT WINAPI FilterGetInformation(HFILTER hFilter, FILTER_INFORMATION_CLASS dwInformationClass, LPVOID lpBuffer, DWORD dwBufferSize, LPDWORD lpBytesReturned);
     39 HRESULT WINAPI FilterGetMessage(HANDLE hPort, PFILTER_MESSAGE_HEADER lpMessageBuffer, DWORD dwMessageBufferSize, LPOVERLAPPED lpOverlapped);
     40 HRESULT WINAPI FilterInstanceClose(HFILTER_INSTANCE hInstance);
     41 HRESULT WINAPI FilterInstanceCreate(LPCWSTR lpFilterName, LPCWSTR lpVolumeName, LPCWSTR lpInstanceName, HFILTER_INSTANCE *hInstance);
     42 HRESULT WINAPI FilterInstanceFindClose(HANDLE hFilterInstanceFind);
     43 HRESULT WINAPI FilterInstanceFindFirst(LPCWSTR lpFilterName, INSTANCE_INFORMATION_CLASS dwInformationClass, LPVOID lpBuffer, DWORD dwBufferSize, LPDWORD lpBytesReturned, LPHANDLE lpFilterInstanceFind);
     44 HRESULT WINAPI FilterInstanceFindNext(HANDLE hFilterInstanceFind, INSTANCE_INFORMATION_CLASS dwInformationClass, LPVOID lpBuffer, DWORD dwBufferSize, LPDWORD lpBytesReturned);
     45 HRESULT WINAPI FilterInstanceGetInformation(HFILTER_INSTANCE hInstance, INSTANCE_INFORMATION_CLASS dwInformationClass, LPVOID lpBuffer, DWORD dwBufferSize, LPDWORD lpBytesReturned);
     46 HRESULT WINAPI FilterLoad(LPCWSTR lpFilterName);
     47 HRESULT WINAPI FilterReplyMessage(HANDLE hPort,PFILTER_REPLY_HEADER lpReplyBuffer,DWORD dwReplyBufferSize);
     48 HRESULT WINAPI FilterSendMessage(HANDLE hPort, LPVOID lpInBuffer, DWORD dwInBufferSize, LPVOID lpOutBuffer, DWORD dwOutBufferSize, LPDWORD lpBytesReturned);
     49 HRESULT WINAPI FilterUnload(LPCWSTR lpFilterName);
     50 HRESULT WINAPI FilterVolumeFindClose(HANDLE hVolumeFind);
     51 HRESULT WINAPI FilterVolumeFindFirst(FILTER_VOLUME_INFORMATION_CLASS dwInformationClass, LPVOID lpBuffer, DWORD dwBufferSize, LPDWORD lpBytesReturned, PHANDLE lpVolumeFind);
     52 HRESULT WINAPI FilterVolumeFindNext(HANDLE hVolumeFind, FILTER_VOLUME_INFORMATION_CLASS dwInformationClass, LPVOID lpBuffer, DWORD dwBufferSize, LPDWORD lpBytesReturned);
     53 HRESULT WINAPI FilterVolumeInstanceFindClose(HANDLE hVolumeInstanceFind);
     54 HRESULT WINAPI FilterVolumeInstanceFindFirst(LPCWSTR lpVolumeName, INSTANCE_INFORMATION_CLASS dwInformationClass, LPVOID lpBuffer, DWORD dwBufferSize, LPDWORD lpBytesReturned, LPHANDLE lpVolumeInstanceFind);
     55 HRESULT WINAPI FilterVolumeInstanceFindNext(HANDLE hVolumeInstanceFind, INSTANCE_INFORMATION_CLASS dwInformationClass, LPVOID lpBuffer, DWORD dwBufferSize, LPDWORD lpBytesReturned);
     56 
     57 #ifdef __cplusplus
     58 }
     59 #endif
     60 
     61 #endif
     62 
     63 #define FLT_MGR_BASELINE \
     64   ((OSVER(NTDDI_VERSION) == NTDDI_WIN2K && SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WIN2KSP4)) \
     65    || (OSVER(NTDDI_VERSION) == NTDDI_WINXP && SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WINXPSP2)) \
     66    || (OSVER(NTDDI_VERSION) == NTDDI_WS03 && SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WS03SP1)) \
     67    || NTDDI_VERSION >= NTDDI_VISTA)
     68 #define FLT_MGR_AFTER_XPSP2 \
     69   ((OSVER(NTDDI_VERSION) == NTDDI_WIN2K && SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WIN2KSP4)) \
     70    || (OSVER(NTDDI_VERSION) == NTDDI_WINXP && SPVER(NTDDI_VERSION) >  SPVER(NTDDI_WINXPSP2)) \
     71    || (OSVER(NTDDI_VERSION) == NTDDI_WS03 && SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WS03SP1)) \
     72    || NTDDI_VERSION >= NTDDI_VISTA)
     73 #define FLT_MGR_LONGHORN	(NTDDI_VERSION >= NTDDI_VISTA)
     74 #define FLT_MGR_WIN7		(NTDDI_VERSION >= NTDDI_WIN7)
     75 #define FLT_MGR_WIN8		(NTDDI_VERSION >= NTDDI_WIN8)
     76 
     77 #endif /* WINAPI_PARTITION_DESKTOP.  */
     78 
     79 #endif
     80