/* * fltuser.h * * This file is part of the ReactOS DDK package. * * Contributors: * Amine Khaldi (amine.khaldi@reactos.org) * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */ #pragma once #ifndef __FLTUSER_H__ #define __FLTUSER_H__ #define FLT_MGR_BASELINE (((OSVER(NTDDI_VERSION) == NTDDI_WIN2K) && (SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WIN2KSP4))) || \ ((OSVER(NTDDI_VERSION) == NTDDI_WINXP) && (SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WINXPSP2))) || \ ((OSVER(NTDDI_VERSION) == NTDDI_WS03) && (SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WS03SP1))) || \ (NTDDI_VERSION >= NTDDI_VISTA)) #define FLT_MGR_AFTER_XPSP2 (((OSVER(NTDDI_VERSION) == NTDDI_WIN2K) && (SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WIN2KSP4))) || \ ((OSVER(NTDDI_VERSION) == NTDDI_WINXP) && (SPVER(NTDDI_VERSION) > SPVER(NTDDI_WINXPSP2))) || \ ((OSVER(NTDDI_VERSION) == NTDDI_WS03) && (SPVER(NTDDI_VERSION) >= SPVER(NTDDI_WS03SP1))) || \ (NTDDI_VERSION >= NTDDI_VISTA)) #define FLT_MGR_LONGHORN (NTDDI_VERSION >= NTDDI_VISTA) #define FLT_MGR_WIN7 (NTDDI_VERSION >= NTDDI_WIN7) #include #ifdef __cplusplus extern "C" { #endif #if FLT_MGR_BASELINE #if FLT_MGR_LONGHORN #define FLT_ASSERT(_e) NT_ASSERT(_e) #define FLT_ASSERTMSG(_m, _e) NT_ASSERTMSG(_m, _e) #else #define FLT_ASSERT(_e) ASSERT(_e) #define FLT_ASSERTMSG(_m, _e) ASSERTMSG(_m, _e) #endif /* FLT_MGR_LONGHORN */ _Must_inspect_result_ HRESULT WINAPI FilterLoad( _In_ LPCWSTR lpFilterName); _Must_inspect_result_ HRESULT WINAPI FilterUnload( _In_ LPCWSTR lpFilterName); _Must_inspect_result_ HRESULT WINAPI FilterCreate( _In_ LPCWSTR lpFilterName, _Outptr_ HFILTER *hFilter); HRESULT WINAPI FilterClose( _In_ HFILTER hFilter); _Must_inspect_result_ HRESULT WINAPI FilterInstanceCreate( _In_ LPCWSTR lpFilterName, _In_ LPCWSTR lpVolumeName, _In_opt_ LPCWSTR lpInstanceName, _Outptr_ HFILTER_INSTANCE *hInstance); HRESULT WINAPI FilterInstanceClose( _In_ HFILTER_INSTANCE hInstance); _Must_inspect_result_ HRESULT WINAPI FilterAttach( _In_ LPCWSTR lpFilterName, _In_ LPCWSTR lpVolumeName, _In_opt_ LPCWSTR lpInstanceName , _In_opt_ DWORD dwCreatedInstanceNameLength , _Out_writes_bytes_opt_(dwCreatedInstanceNameLength) LPWSTR lpCreatedInstanceName); _Must_inspect_result_ HRESULT WINAPI FilterAttachAtAltitude( _In_ LPCWSTR lpFilterName, _In_ LPCWSTR lpVolumeName, _In_ LPCWSTR lpAltitude, _In_opt_ LPCWSTR lpInstanceName , _In_opt_ DWORD dwCreatedInstanceNameLength , _Out_writes_bytes_opt_(dwCreatedInstanceNameLength) LPWSTR lpCreatedInstanceName); _Must_inspect_result_ HRESULT WINAPI FilterDetach( _In_ LPCWSTR lpFilterName, _In_ LPCWSTR lpVolumeName, _In_opt_ LPCWSTR lpInstanceName); _Must_inspect_result_ HRESULT WINAPI FilterFindFirst( _In_ FILTER_INFORMATION_CLASS dwInformationClass, _Out_writes_bytes_to_(dwBufferSize,*lpBytesReturned) LPVOID lpBuffer, _In_ DWORD dwBufferSize, _Out_ LPDWORD lpBytesReturned, _Out_ LPHANDLE lpFilterFind); _Must_inspect_result_ HRESULT WINAPI FilterFindNext( _In_ HANDLE hFilterFind, _In_ FILTER_INFORMATION_CLASS dwInformationClass, _Out_writes_bytes_to_(dwBufferSize,*lpBytesReturned) LPVOID lpBuffer, _In_ DWORD dwBufferSize, _Out_ LPDWORD lpBytesReturned); _Must_inspect_result_ HRESULT WINAPI FilterFindClose( _In_ HANDLE hFilterFind); _Must_inspect_result_ HRESULT WINAPI FilterVolumeFindFirst( _In_ FILTER_VOLUME_INFORMATION_CLASS dwInformationClass, _Out_writes_bytes_to_(dwBufferSize,*lpBytesReturned) LPVOID lpBuffer, _In_ DWORD dwBufferSize, _Out_ LPDWORD lpBytesReturned, _Out_ PHANDLE lpVolumeFind); _Must_inspect_result_ HRESULT WINAPI FilterVolumeFindNext( _In_ HANDLE hVolumeFind, _In_ FILTER_VOLUME_INFORMATION_CLASS dwInformationClass, _Out_writes_bytes_to_(dwBufferSize,*lpBytesReturned) LPVOID lpBuffer, _In_ DWORD dwBufferSize, _Out_ LPDWORD lpBytesReturned); HRESULT WINAPI FilterVolumeFindClose( _In_ HANDLE hVolumeFind); _Must_inspect_result_ HRESULT WINAPI FilterInstanceFindFirst( _In_ LPCWSTR lpFilterName, _In_ INSTANCE_INFORMATION_CLASS dwInformationClass, _Out_writes_bytes_to_(dwBufferSize,*lpBytesReturned) LPVOID lpBuffer, _In_ DWORD dwBufferSize, _Out_ LPDWORD lpBytesReturned, _Out_ LPHANDLE lpFilterInstanceFind); _Must_inspect_result_ HRESULT WINAPI FilterInstanceFindNext( _In_ HANDLE hFilterInstanceFind, _In_ INSTANCE_INFORMATION_CLASS dwInformationClass, _Out_writes_bytes_to_(dwBufferSize,*lpBytesReturned) LPVOID lpBuffer, _In_ DWORD dwBufferSize, _Out_ LPDWORD lpBytesReturned); _Must_inspect_result_ HRESULT WINAPI FilterInstanceFindClose( _In_ HANDLE hFilterInstanceFind); _Must_inspect_result_ HRESULT WINAPI FilterVolumeInstanceFindFirst( _In_ LPCWSTR lpVolumeName, _In_ INSTANCE_INFORMATION_CLASS dwInformationClass, _Out_writes_bytes_to_(dwBufferSize,*lpBytesReturned) LPVOID lpBuffer, _In_ DWORD dwBufferSize, _Out_ LPDWORD lpBytesReturned, _Out_ LPHANDLE lpVolumeInstanceFind); _Must_inspect_result_ HRESULT WINAPI FilterVolumeInstanceFindNext( _In_ HANDLE hVolumeInstanceFind, _In_ INSTANCE_INFORMATION_CLASS dwInformationClass, _Out_writes_bytes_to_(dwBufferSize,*lpBytesReturned) LPVOID lpBuffer, _In_ DWORD dwBufferSize, _Out_ LPDWORD lpBytesReturned); HRESULT WINAPI FilterVolumeInstanceFindClose( _In_ HANDLE hVolumeInstanceFind); _Must_inspect_result_ HRESULT WINAPI FilterGetInformation( _In_ HFILTER hFilter, _In_ FILTER_INFORMATION_CLASS dwInformationClass, _Out_writes_bytes_to_(dwBufferSize,*lpBytesReturned) LPVOID lpBuffer, _In_ DWORD dwBufferSize, _Out_ LPDWORD lpBytesReturned); _Must_inspect_result_ HRESULT WINAPI FilterInstanceGetInformation( _In_ HFILTER_INSTANCE hInstance, _In_ INSTANCE_INFORMATION_CLASS dwInformationClass, _Out_writes_bytes_to_(dwBufferSize,*lpBytesReturned) LPVOID lpBuffer, _In_ DWORD dwBufferSize, _Out_ LPDWORD lpBytesReturned); _Must_inspect_result_ HRESULT WINAPI FilterConnectCommunicationPort( _In_ LPCWSTR lpPortName, _In_ DWORD dwOptions, _In_reads_bytes_opt_(wSizeOfContext) LPCVOID lpContext, _In_ WORD wSizeOfContext, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes , _Outptr_ HANDLE *hPort); _Must_inspect_result_ HRESULT WINAPI FilterSendMessage( _In_ HANDLE hPort, _In_reads_bytes_opt_(dwInBufferSize) LPVOID lpInBuffer, _In_ DWORD dwInBufferSize, _Out_writes_bytes_to_opt_(dwOutBufferSize,*lpBytesReturned) LPVOID lpOutBuffer, _In_ DWORD dwOutBufferSize, _Out_ LPDWORD lpBytesReturned); _Must_inspect_result_ HRESULT WINAPI FilterGetMessage( _In_ HANDLE hPort, _Out_writes_bytes_(dwMessageBufferSize) PFILTER_MESSAGE_HEADER lpMessageBuffer, _In_ DWORD dwMessageBufferSize, _Inout_ LPOVERLAPPED lpOverlapped); _Must_inspect_result_ HRESULT WINAPI FilterReplyMessage( _In_ HANDLE hPort, _In_reads_bytes_(dwReplyBufferSize) PFILTER_REPLY_HEADER lpReplyBuffer, _In_ DWORD dwReplyBufferSize); _Must_inspect_result_ HRESULT WINAPI FilterGetDosName( _In_ LPCWSTR lpVolumeName, _Out_writes_(dwDosNameBufferSize) LPWSTR lpDosName, _In_ DWORD dwDosNameBufferSize); #endif /* FLT_MGR_BASELINE */ #ifdef __cplusplus } /* extern "C" */ #endif #endif /* __FLTUSER_H__ */