Author: gedmurphy Date: Tue Aug 9 22:10:05 2016 New Revision: 72178
URL: http://svn.reactos.org/svn/reactos?rev=72178&view=rev Log: [FLTLIB] - Stub out fltlib.dll. - Add basic implementations for FilterLoad and FilterUnload - Remove the wine code, this lib talks directly to fltmgr.sys and is therefore a reactos only dll from now on.
Added: trunk/reactos/dll/win32/fltlib/stubs.c (with props) Modified: trunk/reactos/dll/win32/fltlib/CMakeLists.txt trunk/reactos/dll/win32/fltlib/fltlib.c trunk/reactos/dll/win32/fltlib/fltlib.spec
Modified: trunk/reactos/dll/win32/fltlib/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/fltlib/CMakeLists... ============================================================================== --- trunk/reactos/dll/win32/fltlib/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/win32/fltlib/CMakeLists.txt [iso-8859-1] Tue Aug 9 22:10:05 2016 @@ -1,11 +1,11 @@
add_definitions(-D__WINESRC__) include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine) -spec2def(fltlib.dll fltlib.spec) +spec2def(fltlib.dll fltlib.spec ADD_IMPORTLIB)
list(APPEND SOURCE fltlib.c - ${CMAKE_CURRENT_BINARY_DIR}/fltlib_stubs.c + stubs.c ${CMAKE_CURRENT_BINARY_DIR}/fltlib.def)
add_library(fltlib SHARED ${SOURCE} rsrc.rc)
Modified: trunk/reactos/dll/win32/fltlib/fltlib.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/fltlib/fltlib.c?r... ============================================================================== --- trunk/reactos/dll/win32/fltlib/fltlib.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/fltlib/fltlib.c [iso-8859-1] Tue Aug 9 22:10:05 2016 @@ -1,101 +1,165 @@ /* - * Copyright 2009 Detlef Riekenberg - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - +* PROJECT: Filesystem Filter Manager library +* LICENSE: GPL - See COPYING in the top level directory +* FILE: dll/win32/fltlib/fltlib.c +* PURPOSE: +* PROGRAMMERS: Ged Murphy (ged.murphy@reactos.org) +*/
#include <stdarg.h>
+#define WIN32_NO_STATUS + #include "windef.h" #include "winbase.h" + +#define NTOS_MODE_USER +#include <ndk/iofuncs.h> +#include <ndk/obfuncs.h> +#include <ndk/rtlfuncs.h> + #include "wine/debug.h" + + +/* DATA ****************************************************************************/
WINE_DEFAULT_DEBUG_CHANNEL(fltlib);
-/***************************************************** - * DllMain - */ -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +//MOVEME +#define IOCTL_LOAD_FILTER CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x01, 0, FILE_WRITE_DATA) //88004 +#define IOCTL_UNLOAD_FILTER CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x02, 0, FILE_WRITE_DATA) //88008 +#define IOCTL_CREATE_FILTER CTL_CODE(FILE_DEVICE_DISK_FILE_SYSTEM, 0x03, 0, FILE_READ_DATA) //8400c + +static +HRESULT +FilterLoadUnload(_In_z_ LPCWSTR lpFilterName, + _In_ BOOL Load); + +static +DWORD +SendIoctl(_In_ HANDLE Handle, + _In_ ULONG IoControlCode, + _In_reads_bytes_opt_(BufferSize) LPVOID lpInBuffer, + _In_ DWORD BufferSize); + + +/* PUBLIC FUNCTIONS ****************************************************************/ + +_Must_inspect_result_ +HRESULT +WINAPI +FilterLoad(_In_ LPCWSTR lpFilterName) { - TRACE("(0x%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved); - - switch (fdwReason) - { - case DLL_WINE_PREATTACH: - return FALSE; /* use native version */ - - case DLL_PROCESS_ATTACH: - DisableThreadLibraryCalls(hinstDLL); - break; - } - return TRUE; + return FilterLoadUnload(lpFilterName, TRUE); }
-/********************************************************************** - * FilterConnectCommunicationPort (FLTLIB.@) - */ -HRESULT WINAPI FilterConnectCommunicationPort(LPCWSTR lpPortName, DWORD dwOptions, - LPVOID lpContext, DWORD dwSizeOfContext, - LPSECURITY_ATTRIBUTES lpSecurityAttributes, - HANDLE *hPort) +_Must_inspect_result_ +HRESULT +WINAPI +FilterUnload(_In_ LPCWSTR lpFilterName) { - FIXME("(%s, %d, %p, %d, %p, %p) stub\n", debugstr_w(lpPortName), dwOptions, - lpContext, dwSizeOfContext, lpSecurityAttributes, hPort); - - *hPort = INVALID_HANDLE_VALUE; - return E_NOTIMPL; + return FilterLoadUnload(lpFilterName, FALSE); }
-/********************************************************************** - * FilterFindFirst (FLTLIB.@) - */ -HRESULT WINAPI FilterFindFirst(DWORD class, LPVOID buffer, DWORD size, LPDWORD bytes_returned, - LPHANDLE handle) + +/* PRIVATE FUNCTIONS ****************************************************************/ + +static +HRESULT +FilterLoadUnload(_In_z_ LPCWSTR lpFilterName, + _In_ BOOL Load) { - FIXME("(%u, %p, %u, %p, %p) stub\n", class, buffer, size, bytes_returned, handle); - return HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS); + PUNICODE_STRING FilterName; + HANDLE hFltMgr; + DWORD BufferLength; + DWORD dwError; + + /* Get a handle to the filter manager */ + hFltMgr = CreateFileW(lpFilterName, + GENERIC_READ, + FILE_SHARE_WRITE, + NULL, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + &hFltMgr); + if (hFltMgr == INVALID_HANDLE_VALUE) + { + dwError = GetLastError(); + return HRESULT_FROM_WIN32(dwError); + } + + /* Calc and allocate a buffer to hold our filter name */ + BufferLength = wcslen(lpFilterName) * sizeof(WCHAR); + FilterName = RtlAllocateHeap(GetProcessHeap(), + 0, + BufferLength + sizeof(UNICODE_STRING)); + if (FilterName == NULL) + { + CloseHandle(hFltMgr); + return HRESULT_FROM_WIN32(ERROR_OUTOFMEMORY); + } + + /* Build up the filter name into a real life string */ + FilterName->Buffer = (PWCH)(FilterName + 1); + FilterName->Length = BufferLength; + FilterName->MaximumLength = BufferLength; + RtlCopyMemory(FilterName->Buffer, lpFilterName, BufferLength); + + /* Tell the filter manager to load the filter for us */ + dwError = SendIoctl(hFltMgr, + Load ? IOCTL_LOAD_FILTER : IOCTL_UNLOAD_FILTER, + FilterName, + BufferLength + sizeof(UNICODE_STRING)); + + /* Cleaup and bail*/ + CloseHandle(hFltMgr); + return HRESULT_FROM_WIN32(dwError); }
-/********************************************************************** - * FilterFindClose (FLTLIB.@) - */ -HRESULT WINAPI FilterFindClose(HANDLE handle) +static +DWORD +SendIoctl(_In_ HANDLE Handle, + _In_ ULONG IoControlCode, + _In_reads_bytes_opt_(BufferSize) LPVOID lpInBuffer, + _In_ DWORD BufferSize) { - FIXME("(%p) stub\n", handle); - return S_OK; + IO_STATUS_BLOCK IoStatusBlock; + NTSTATUS Status; + + Status = NtDeviceIoControlFile(Handle, + NULL, + NULL, + NULL, + &IoStatusBlock, + IoControlCode, + lpInBuffer, + BufferSize, + NULL, + 0); + if (Status == STATUS_PENDING) + { + Status = NtWaitForSingleObject(Handle, FALSE, NULL); + if (NT_SUCCESS(Status)) + { + Status = IoStatusBlock.Status; + } + } + + return RtlNtStatusToDosError(Status); }
-/********************************************************************** - * FilterLoad (FLTLIB.@) - */ -HRESULT WINAPI FilterLoad(LPCWSTR filtername) +BOOL +WINAPI +DllMain(_In_ HINSTANCE hinstDLL, + _In_ DWORD dwReason, + _In_ LPVOID lpvReserved) { - FIXME("(%s) stub\n", debugstr_w(filtername)); - return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); -} + switch (dwReason) + { + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls(hinstDLL); + break; + }
-/********************************************************************** - * FilterUnload (FLTLIB.@) - */ -HRESULT WINAPI FilterUnload(LPCWSTR filtername) -{ - FIXME("(%s) stub\n", debugstr_w(filtername)); - - if (!filtername) - return HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER); - - return S_OK; -} + return TRUE; +}
Modified: trunk/reactos/dll/win32/fltlib/fltlib.spec URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/fltlib/fltlib.spe... ============================================================================== --- trunk/reactos/dll/win32/fltlib/fltlib.spec [iso-8859-1] (original) +++ trunk/reactos/dll/win32/fltlib/fltlib.spec [iso-8859-1] Tue Aug 9 22:10:05 2016 @@ -1,29 +1,28 @@ -@ stub FilterAttach -@ stub FilterAttachAtAltitude -@ stub FilterClose +@ stdcall FilterAttach(wstr wstr wstr long wstr) +@ stdcall FilterAttachAtAltitude(wstr wstr wstr wstr long wstr) +@ stdcall FilterClose(ptr) @ stdcall FilterConnectCommunicationPort(wstr long ptr long ptr ptr) -@ stub FilterCreate -@ stub FilterDetach +@ stdcall FilterCreate(wstr ptr) +@ stdcall FilterDetach(wstr wstr wstr) @ stdcall FilterFindClose(ptr) @ stdcall FilterFindFirst(long ptr long ptr ptr) -@ stub FilterFindNext -@ stub FilterGetDosName -@ stub FilterGetInformation -@ stub FilterGetMessage -@ stub FilterInstanceClose -@ stub FilterInstanceCreate -@ stub FilterInstanceFindClose -@ stub FilterInstanceFindFirst -@ stub FilterInstanceFindNext -@ stub FilterInstanceGetInformation +@ stdcall FilterFindNext(ptr ptr long ptr ptr) +@ stdcall FilterGetDosName(wstr wstr long) +@ stdcall FilterGetInformation(ptr long ptr long ptr) +@ stdcall FilterGetMessage(ptr ptr long ptr) +@ stdcall FilterInstanceClose(ptr) +@ stdcall FilterInstanceCreate(wstr wstr wstr ptr) +@ stdcall FilterInstanceFindClose(ptr) +@ stdcall FilterInstanceFindFirst(wstr long ptr long ptr ptr) +@ stdcall FilterInstanceFindNext(ptr long ptr long ptr) +@ stdcall FilterInstanceGetInformation(ptr long ptr long ptr) @ stdcall FilterLoad(wstr) -@ stub FilterReplyMessage -@ stub FilterSendMessage +@ stdcall FilterReplyMessage(ptr ptr long) +@ stdcall FilterSendMessage(ptr ptr long ptr long ptr) @ stdcall FilterUnload(wstr) -@ stub FilterVolumeClose -@ stub FilterVolumeFindClose -@ stub FilterVolumeFindFirst -@ stub FilterVolumeFindNext -@ stub FilterVolumeInstanceFindClose -@ stub FilterVolumeInstanceFindFirst -@ stub FilterVolumeInstanceFindNext +@ stdcall FilterVolumeFindClose(ptr) +@ stdcall FilterVolumeFindFirst(long ptr long ptr ptr) +@ stdcall FilterVolumeFindNext(ptr long ptr long ptr) +@ stdcall FilterVolumeInstanceFindClose(ptr) +@ stdcall FilterVolumeInstanceFindFirst(wstr long ptr long ptr ptr) +@ stdcall FilterVolumeInstanceFindNext(ptr long ptr long ptr)
Added: trunk/reactos/dll/win32/fltlib/stubs.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/fltlib/stubs.c?re... ============================================================================== --- trunk/reactos/dll/win32/fltlib/stubs.c (added) +++ trunk/reactos/dll/win32/fltlib/stubs.c [iso-8859-1] Tue Aug 9 22:10:05 2016 @@ -0,0 +1,403 @@ +/* +* PROJECT: Filesystem Filter Manager library +* LICENSE: GPL - See COPYING in the top level directory +* FILE: dll/win32/fltlib/stubs.c +* PURPOSE: +* PROGRAMMERS: Ged Murphy (ged.murphy@reactos.org) +*/ + +// Hack - our SDK reports NTDDI_VERSION as 0x05020100 (from _WIN32_WINNT 0x502) +// which doesn't pass the FLT_MGR_BASELINE check in fltkernel.h +#define NTDDI_VERSION NTDDI_WS03SP1 + +#include <stdarg.h> +#include "windef.h" +#include "winbase.h" + +#include <fltuser.h> + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(fltlib); + + +_Must_inspect_result_ +HRESULT +WINAPI +FilterCreate(_In_ LPCWSTR lpFilterName, + _Outptr_ HFILTER *hFilter) +{ + UNREFERENCED_PARAMETER(lpFilterName); + UNREFERENCED_PARAMETER(hFilter); + return E_NOTIMPL; +} + +HRESULT +WINAPI +FilterClose(_In_ HFILTER hFilter) +{ + UNREFERENCED_PARAMETER(hFilter); + return E_NOTIMPL; +} + +_Must_inspect_result_ +HRESULT +WINAPI +FilterInstanceCreate(_In_ LPCWSTR lpFilterName, + _In_ LPCWSTR lpVolumeName, + _In_opt_ LPCWSTR lpInstanceName, + _Outptr_ HFILTER_INSTANCE *hInstance) +{ + UNREFERENCED_PARAMETER(lpFilterName); + UNREFERENCED_PARAMETER(lpVolumeName); + UNREFERENCED_PARAMETER(lpInstanceName); + UNREFERENCED_PARAMETER(hInstance); + return E_NOTIMPL; +} + +HRESULT +WINAPI +FilterInstanceClose(_In_ HFILTER_INSTANCE hInstance) +{ + UNREFERENCED_PARAMETER(hInstance); + return E_NOTIMPL; +} + +_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) +{ + UNREFERENCED_PARAMETER(lpFilterName); + UNREFERENCED_PARAMETER(lpVolumeName); + UNREFERENCED_PARAMETER(lpInstanceName); + UNREFERENCED_PARAMETER(dwCreatedInstanceNameLength); + UNREFERENCED_PARAMETER(lpCreatedInstanceName); + return E_NOTIMPL; +} + +_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) +{ + UNREFERENCED_PARAMETER(lpFilterName); + UNREFERENCED_PARAMETER(lpVolumeName); + UNREFERENCED_PARAMETER(lpAltitude); + UNREFERENCED_PARAMETER(lpInstanceName); + UNREFERENCED_PARAMETER(dwCreatedInstanceNameLength); + UNREFERENCED_PARAMETER(lpCreatedInstanceName); + return E_NOTIMPL; +} + +_Must_inspect_result_ +HRESULT +WINAPI +FilterDetach(_In_ LPCWSTR lpFilterName, + _In_ LPCWSTR lpVolumeName, + _In_opt_ LPCWSTR lpInstanceName +) +{ + UNREFERENCED_PARAMETER(lpFilterName); + UNREFERENCED_PARAMETER(lpVolumeName); + UNREFERENCED_PARAMETER(lpInstanceName); + return E_NOTIMPL; +} + +_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) +{ + UNREFERENCED_PARAMETER(dwInformationClass); + UNREFERENCED_PARAMETER(lpBuffer); + UNREFERENCED_PARAMETER(dwBufferSize); + UNREFERENCED_PARAMETER(lpBytesReturned); + UNREFERENCED_PARAMETER(lpFilterFind); + return E_NOTIMPL; +} + +_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) +{ + UNREFERENCED_PARAMETER(hFilterFind); + UNREFERENCED_PARAMETER(dwInformationClass); + UNREFERENCED_PARAMETER(lpBuffer); + UNREFERENCED_PARAMETER(dwBufferSize); + UNREFERENCED_PARAMETER(lpBytesReturned); + return E_NOTIMPL; +} + +_Must_inspect_result_ +HRESULT +WINAPI +FilterFindClose(_In_ HANDLE hFilterFind) +{ + UNREFERENCED_PARAMETER(hFilterFind); + return E_NOTIMPL; +} + +_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) +{ + UNREFERENCED_PARAMETER(dwInformationClass); + UNREFERENCED_PARAMETER(lpBuffer); + UNREFERENCED_PARAMETER(dwBufferSize); + UNREFERENCED_PARAMETER(lpBytesReturned); + UNREFERENCED_PARAMETER(lpVolumeFind); + return E_NOTIMPL; +} + +_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) +{ + UNREFERENCED_PARAMETER(hVolumeFind); + UNREFERENCED_PARAMETER(dwInformationClass); + UNREFERENCED_PARAMETER(lpBuffer); + UNREFERENCED_PARAMETER(dwBufferSize); + UNREFERENCED_PARAMETER(lpBytesReturned); + return E_NOTIMPL; +} + +HRESULT +WINAPI +FilterVolumeFindClose(_In_ HANDLE hVolumeFind) +{ + UNREFERENCED_PARAMETER(hVolumeFind); + return E_NOTIMPL; +} + +_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) +{ + UNREFERENCED_PARAMETER(lpFilterName); + UNREFERENCED_PARAMETER(dwInformationClass); + UNREFERENCED_PARAMETER(lpBuffer); + UNREFERENCED_PARAMETER(dwBufferSize); + UNREFERENCED_PARAMETER(lpBytesReturned); + UNREFERENCED_PARAMETER(lpFilterInstanceFind); + return E_NOTIMPL; +} + +_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) +{ + + UNREFERENCED_PARAMETER(hFilterInstanceFind); + UNREFERENCED_PARAMETER(dwInformationClass); + UNREFERENCED_PARAMETER(lpBuffer); + UNREFERENCED_PARAMETER(dwBufferSize); + UNREFERENCED_PARAMETER(lpBytesReturned); + return E_NOTIMPL; +} + +_Must_inspect_result_ +HRESULT +WINAPI +FilterInstanceFindClose(_In_ HANDLE hFilterInstanceFind) +{ + UNREFERENCED_PARAMETER(hFilterInstanceFind); + return E_NOTIMPL; +} + +_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) +{ + UNREFERENCED_PARAMETER(lpVolumeName); + UNREFERENCED_PARAMETER(dwInformationClass); + UNREFERENCED_PARAMETER(lpBuffer); + UNREFERENCED_PARAMETER(dwBufferSize); + UNREFERENCED_PARAMETER(lpBytesReturned); + UNREFERENCED_PARAMETER(lpVolumeInstanceFind); + return E_NOTIMPL; +} + +_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) +{ + UNREFERENCED_PARAMETER(hVolumeInstanceFind); + UNREFERENCED_PARAMETER(dwInformationClass); + UNREFERENCED_PARAMETER(lpBuffer); + UNREFERENCED_PARAMETER(dwBufferSize); + UNREFERENCED_PARAMETER(lpBytesReturned); + return E_NOTIMPL; +} + +HRESULT +WINAPI +FilterVolumeInstanceFindClose(_In_ HANDLE hVolumeInstanceFind) +{ + UNREFERENCED_PARAMETER(hVolumeInstanceFind); + return E_NOTIMPL; +} + +_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) +{ + UNREFERENCED_PARAMETER(hFilter); + UNREFERENCED_PARAMETER(dwInformationClass); + UNREFERENCED_PARAMETER(lpBuffer); + UNREFERENCED_PARAMETER(dwBufferSize); + UNREFERENCED_PARAMETER(lpBytesReturned); + return E_NOTIMPL; +} + +_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) +{ + UNREFERENCED_PARAMETER(hInstance); + UNREFERENCED_PARAMETER(dwInformationClass); + UNREFERENCED_PARAMETER(lpBuffer); + UNREFERENCED_PARAMETER(dwBufferSize); + UNREFERENCED_PARAMETER(lpBytesReturned); + return E_NOTIMPL; +} + + +_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) +{ + UNREFERENCED_PARAMETER(lpPortName); + UNREFERENCED_PARAMETER(dwOptions); + UNREFERENCED_PARAMETER(lpContext); + UNREFERENCED_PARAMETER(wSizeOfContext); + UNREFERENCED_PARAMETER(lpSecurityAttributes); + UNREFERENCED_PARAMETER(hPort); + return E_NOTIMPL; +} + +_Must_inspect_result_ +HRESULT +WINAPI +FilterSendMessage(_In_ HANDLE hPort, + _In_reads_bytes_(dwInBufferSize) LPVOID lpInBuffer, + _In_ DWORD dwInBufferSize, + _Out_writes_bytes_to_opt_(dwOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, + _In_ DWORD dwOutBufferSize, + _Out_ LPDWORD lpBytesReturned) +{ + UNREFERENCED_PARAMETER(hPort); + UNREFERENCED_PARAMETER(lpInBuffer); + UNREFERENCED_PARAMETER(dwInBufferSize); + UNREFERENCED_PARAMETER(lpOutBuffer); + UNREFERENCED_PARAMETER(dwOutBufferSize); + UNREFERENCED_PARAMETER(lpBytesReturned); + return E_NOTIMPL; +} + +_Must_inspect_result_ +HRESULT +WINAPI +FilterGetMessage(_In_ HANDLE hPort, + _Out_writes_bytes_(dwMessageBufferSize) PFILTER_MESSAGE_HEADER lpMessageBuffer, + _In_ DWORD dwMessageBufferSize, + _Inout_opt_ LPOVERLAPPED lpOverlapped) +{ + UNREFERENCED_PARAMETER(hPort); + UNREFERENCED_PARAMETER(lpMessageBuffer); + UNREFERENCED_PARAMETER(dwMessageBufferSize); + UNREFERENCED_PARAMETER(lpOverlapped); + return E_NOTIMPL; +} + +_Must_inspect_result_ +HRESULT +WINAPI +FilterReplyMessage(_In_ HANDLE hPort, + _In_reads_bytes_(dwReplyBufferSize) PFILTER_REPLY_HEADER lpReplyBuffer, + _In_ DWORD dwReplyBufferSize) +{ + UNREFERENCED_PARAMETER(hPort); + UNREFERENCED_PARAMETER(lpReplyBuffer); + UNREFERENCED_PARAMETER(dwReplyBufferSize); + return E_NOTIMPL; +} + +_Must_inspect_result_ +HRESULT +WINAPI +FilterGetDosName(_In_ LPCWSTR lpVolumeName, + _Out_writes_(dwDosNameBufferSize) LPWSTR lpDosName, + _In_ DWORD dwDosNameBufferSize) +{ + UNREFERENCED_PARAMETER(lpVolumeName); + UNREFERENCED_PARAMETER(lpDosName); + UNREFERENCED_PARAMETER(dwDosNameBufferSize); + return E_NOTIMPL; +}
Propchange: trunk/reactos/dll/win32/fltlib/stubs.c ------------------------------------------------------------------------------ svn:eol-style = native