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/CMakeList…
==============================================================================
--- 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?…
==============================================================================
--- 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(a)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.sp…
==============================================================================
--- 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?r…
==============================================================================
--- 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(a)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