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