Added patch for stub of fltmgr.sys (filter manager driver).

This commit is contained in:
Sebastian Lackner 2015-03-28 23:54:21 +01:00
parent c9380eed86
commit 7fb4b8cfc8
5 changed files with 348 additions and 55 deletions

View File

@ -38,8 +38,9 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
===================================
**Bugfixes and features included in the next upcoming release [8]:**
**Bugfixes and features included in the next upcoming release [9]:**
* Add stub fltmgr.sys (filter manager driver) ([Wine Bug #23583](https://bugs.winehq.org/show_bug.cgi?id=23583))
* Add stubs for Power[Set|Clear]Request
* Avoid spam of FIXME messages for PsLookupProcessByProcessId stub ([Wine Bug #36821](https://bugs.winehq.org/show_bug.cgi?id=36821))
* Don't return an error in WS_select when EINTR happens during timeout

1
debian/changelog vendored
View File

@ -9,6 +9,7 @@ wine-staging (1.7.40) UNRELEASED; urgency=low
* Added patches for Environmental Audio Extensions (EAX), pull request #311 from Mark Harmstone.
* Added patch to fix return value of WS_select in case of EINTR during timeout.
* Added patch to fix calculation of 3D sound source.
* Added patch for stub of fltmgr.sys (filter manager driver).
* Removed patch to fix regression causing black screen on startup (accepted upstream).
* Removed patch to fix edge cases in TOOLTIPS_GetTipText (fixed upstream).
* Removed patch for IConnectionPoint/INetworkListManagerEvents stub interface (accepted upstream).

View File

@ -0,0 +1,271 @@
From 9830d124c74e4181b213f99f3878bb3189ffe324 Mon Sep 17 00:00:00 2001
From: Austin English <austinenglish@gmail.com>
Date: Wed, 25 Feb 2015 00:55:44 -0600
Subject: fltmgr.sys: add stub dll (try 3)
---
configure.ac | 1 +
dlls/fltmgr.sys/Makefile.in | 1 +
dlls/fltmgr.sys/fltmgr.sys.spec | 163 ++++++++++++++++++++++++++++++++++++++++
dlls/fltmgr.sys/main.c | 38 ++++++++++
loader/wine.inf.in | 2 +
5 files changed, 205 insertions(+)
create mode 100644 dlls/fltmgr.sys/Makefile.in
create mode 100644 dlls/fltmgr.sys/fltmgr.sys.spec
create mode 100644 dlls/fltmgr.sys/main.c
diff --git a/configure.ac b/configure.ac
index 1fc7873..0022f91 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2949,6 +2949,7 @@ WINE_CONFIG_DLL(ext-ms-win-gdi-devcaps-l1-1-0)
WINE_CONFIG_DLL(faultrep,,[implib])
WINE_CONFIG_TEST(dlls/faultrep/tests)
WINE_CONFIG_DLL(fltlib)
+WINE_CONFIG_DLL(fltmgr.sys)
WINE_CONFIG_DLL(fntcache)
WINE_CONFIG_DLL(fontsub)
WINE_CONFIG_DLL(fusion)
diff --git a/dlls/fltmgr.sys/Makefile.in b/dlls/fltmgr.sys/Makefile.in
new file mode 100644
index 0000000..75bae4d
--- /dev/null
+++ b/dlls/fltmgr.sys/Makefile.in
@@ -0,0 +1 @@
+MODULE = fltmgr.sys
diff --git a/dlls/fltmgr.sys/fltmgr.sys.spec b/dlls/fltmgr.sys/fltmgr.sys.spec
new file mode 100644
index 0000000..5310269
--- /dev/null
+++ b/dlls/fltmgr.sys/fltmgr.sys.spec
@@ -0,0 +1,163 @@
+@ stub FltAcquirePushLockExclusive
+@ stub FltAcquirePushLockShared
+@ stub FltAcquireResourceExclusive
+@ stub FltAcquireResourceShared
+@ stub FltAllocateCallbackData
+@ stub FltAllocateContext
+@ stub FltAllocateDeferredIoWorkItem
+@ stub FltAllocateFileLock
+@ stub FltAllocateGenericWorkItem
+@ stub FltAllocatePoolAlignedWithTag
+@ stub FltAttachVolume
+@ stub FltAttachVolumeAtAltitude
+@ stub FltBuildDefaultSecurityDescriptor
+@ stub FltCancelFileOpen
+@ stub FltCancelIo
+@ stub FltCbdqDisable
+@ stub FltCbdqEnable
+@ stub FltCbdqInitialize
+@ stub FltCbdqInsertIo
+@ stub FltCbdqRemoveIo
+@ stub FltCbdqRemoveNextIo
+@ stub FltCheckAndGrowNameControl
+@ stub FltCheckLockForReadAccess
+@ stub FltCheckLockForWriteAccess
+@ stub FltCheckOplock
+@ stub FltClearCallbackDataDirty
+@ stub FltClearCancelCompletion
+@ stub FltClose
+@ stub FltCloseClientPort
+@ stub FltCloseCommunicationPort
+@ stub FltCompareInstanceAltitudes
+@ stub FltCompletePendedPostOperation
+@ stub FltCompletePendedPreOperation
+@ stub FltCreateCommunicationPort
+@ stub FltCreateFile
+@ stub FltCreateFileEx
+@ stub FltCreateSystemVolumeInformationFolder
+@ stub FltCurrentBatchOplock
+@ stub FltDecodeParameters
+@ stub FltDeleteContext
+@ stub FltDeleteFileContext
+@ stub FltDeleteInstanceContext
+@ stub FltDeletePushLock
+@ stub FltDeleteStreamContext
+@ stub FltDeleteStreamHandleContext
+@ stub FltDeleteVolumeContext
+@ stub FltDetachVolume
+@ stub FltDeviceIoControlFile
+@ stub FltDoCompletionProcessingWhenSafe
+@ stub FltEnumerateFilterInformation
+@ stub FltEnumerateFilters
+@ stub FltEnumerateInstanceInformationByFilter
+@ stub FltEnumerateInstanceInformationByVolume
+@ stub FltEnumerateInstances
+@ stub FltEnumerateVolumeInformation
+@ stub FltEnumerateVolumes
+@ stub FltFlushBuffers
+@ stub FltFreeCallbackData
+@ stub FltFreeDeferredIoWorkItem
+@ stub FltFreeFileLock
+@ stub FltFreeGenericWorkItem
+@ stub FltFreePoolAlignedWithTag
+@ stub FltFreeSecurityDescriptor
+@ stub FltFsControlFile
+@ stub FltGetBottomInstance
+@ stub FltGetContexts
+@ stub FltGetDestinationFileNameInformation
+@ stub FltGetDeviceObject
+@ stub FltGetDiskDeviceObject
+@ stub FltGetFileContext
+@ stub FltGetFileNameInformation
+@ stub FltGetFileNameInformationUnsafe
+@ stub FltGetFilterFromInstance
+@ stub FltGetFilterFromName
+@ stub FltGetFilterInformation
+@ stub FltGetInstanceContext
+@ stub FltGetInstanceInformation
+@ stub FltGetIrpName
+@ stub FltGetLowerInstance
+@ stub FltGetRequestorProcess
+@ stub FltGetRequestorProcessId
+@ stub FltGetRoutineAddress
+@ stub FltGetStreamContext
+@ stub FltGetStreamHandleContext
+@ stub FltGetSwappedBufferMdlAddress
+@ stub FltGetTopInstance
+@ stub FltGetTunneledName
+@ stub FltGetUpperInstance
+@ stub FltGetVolumeContext
+@ stub FltGetVolumeFromDeviceObject
+@ stub FltGetVolumeFromFileObject
+@ stub FltGetVolumeFromInstance
+@ stub FltGetVolumeFromName
+@ stub FltGetVolumeGuidName
+@ stub FltGetVolumeInstanceFromName
+@ stub FltGetVolumeName
+@ stub FltGetVolumeProperties
+@ stub FltInitializeFileLock
+@ stub FltInitializeOplock
+@ stub FltInitializePushLock
+@ stub FltIs32bitProcess
+@ stub FltIsCallbackDataDirty
+@ stub FltIsDirectory
+@ stub FltIsIoCanceled
+@ stub FltIsOperationSynchronous
+@ stub FltIsVolumeWritable
+@ stub FltLoadFilter
+@ stub FltLockUserBuffer
+@ stub FltNotifyFilterChangeDirectory
+@ stub FltObjectDereference
+@ stub FltObjectReference
+@ stub FltOpenVolume
+@ stub FltOplockFsctrl
+@ stub FltOplockIsFastIoPossible
+@ stub FltParseFileName
+@ stub FltParseFileNameInformation
+@ stub FltPerformAsynchronousIo
+@ stub FltPerformSynchronousIo
+@ stub FltProcessFileLock
+@ stub FltPurgeFileNameInformationCache
+@ stub FltQueryEaFile
+@ stub FltQueryInformationFile
+@ stub FltQuerySecurityObject
+@ stub FltQueryVolumeInformation
+@ stub FltQueryVolumeInformationFile
+@ stub FltQueueDeferredIoWorkItem
+@ stub FltQueueGenericWorkItem
+@ stub FltReadFile
+@ stub FltReferenceContext
+@ stub FltReferenceFileNameInformation
+@ stub FltRegisterFilter
+@ stub FltReissueSynchronousIo
+@ stub FltReleaseContext
+@ stub FltReleaseContexts
+@ stub FltReleaseFileNameInformation
+@ stub FltReleasePushLock
+@ stub FltReleaseResource
+@ stub FltRequestOperationStatusCallback
+@ stub FltRetainSwappedBufferMdlAddress
+@ stub FltReuseCallbackData
+@ stub FltSendMessage
+@ stub FltSetCallbackDataDirty
+@ stub FltSetCancelCompletion
+@ stub FltSetEaFile
+@ stub FltSetFileContext
+@ stub FltSetInformationFile
+@ stub FltSetInstanceContext
+@ stub FltSetSecurityObject
+@ stub FltSetStreamContext
+@ stub FltSetStreamHandleContext
+@ stub FltSetVolumeContext
+@ stub FltSetVolumeInformation
+@ stub FltStartFiltering
+@ stub FltSupportsFileContexts
+@ stub FltSupportsStreamContexts
+@ stub FltSupportsStreamHandleContexts
+@ stub FltTagFile
+@ stub FltUninitializeFileLock
+@ stub FltUninitializeOplock
+@ stub FltUnloadFilter
+@ stub FltUnregisterFilter
+@ stub FltUntagFile
+@ stub FltWriteFile
diff --git a/dlls/fltmgr.sys/main.c b/dlls/fltmgr.sys/main.c
new file mode 100644
index 0000000..60d4f4b
--- /dev/null
+++ b/dlls/fltmgr.sys/main.c
@@ -0,0 +1,38 @@
+/*
+ * fltmgr.sys
+ *
+ * Copyright 2015 Austin English
+ *
+ * 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
+ */
+#include <stdarg.h>
+
+#define NONAMELESSUNION
+#define NONAMELESSSTRUCT
+
+#include "ntstatus.h"
+#include "winbase.h"
+#include "winternl.h"
+#include "ddk/wdm.h"
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(fltmgr);
+
+NTSTATUS WINAPI DriverEntry( DRIVER_OBJECT *driver, UNICODE_STRING *path )
+{
+ TRACE( "(%p, %s)\n", driver, debugstr_w(path->Buffer) );
+ return STATUS_SUCCESS;
+}
+
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
index d901251..905f729 100644
--- a/loader/wine.inf.in
+++ b/loader/wine.inf.in
@@ -2495,6 +2495,7 @@ HKLM,%CurrentVersion%\Telephony\Country List\998,"SameAreaRule",,"G"
10,syswow64,stdole2.tlb
11,,iexplore.exe
11,,winetest.exe,-
+12,,fltmgr.sys,-
12,,mountmgr.sys,-
12,,ndis.sys,-
; skip .NET fake dlls in Wine Mono package
@@ -2533,6 +2534,7 @@ HKLM,%CurrentVersion%\Telephony\Country List\998,"SameAreaRule",,"G"
11,,iexplore.exe
11,,notepad.exe
11,,winetest.exe,-
+12,,fltmgr.sys
12,,mountmgr.sys
12,,ndis.sys
; skip .NET fake dlls in Wine Mono package
--
2.3.3

View File

@ -0,0 +1 @@
Fixes: [23583] Add stub fltmgr.sys (filter manager driver)

View File

@ -99,6 +99,7 @@ patch_enable_all ()
enable_dsound_Fast_Mixer="$1"
enable_dxgi_GetDesc="$1"
enable_dxva2_Video_Decoder="$1"
enable_fltmgr_Stub_SYS="$1"
enable_fonts_Missing_Fonts="$1"
enable_gdi32_MaxPixelFormats="$1"
enable_gdi32_MultiMonitor="$1"
@ -358,6 +359,9 @@ patch_enable ()
dxva2-Video_Decoder)
enable_dxva2_Video_Decoder="$2"
;;
fltmgr-Stub_SYS)
enable_fltmgr_Stub_SYS="$2"
;;
fonts-Missing_Fonts)
enable_fonts_Missing_Fonts="$2"
;;
@ -1891,18 +1895,6 @@ if test "$enable_dxgi_GetDesc" -eq 1; then
) >> "$patchlist"
fi
# Patchset makedep-PARENTSPEC
# |
# | Modified files:
# | * tools/makedep.c
# |
if test "$enable_makedep_PARENTSPEC" -eq 1; then
patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch
(
echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-DllRedirects
# |
# | Modified files:
@ -1923,6 +1915,18 @@ if test "$enable_ntdll_DllRedirects" -eq 1; then
) >> "$patchlist"
fi
# Patchset makedep-PARENTSPEC
# |
# | Modified files:
# | * tools/makedep.c
# |
if test "$enable_makedep_PARENTSPEC" -eq 1; then
patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch
(
echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-CSMT_Helper
# |
# | Modified files:
@ -1939,33 +1943,6 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-UnhandledBlendFactor
# |
# | Modified files:
# | * dlls/wined3d/state.c
# |
if test "$enable_wined3d_UnhandledBlendFactor" -eq 1; then
patch_apply wined3d-UnhandledBlendFactor/0001-wined3d-Silence-repeated-Unhandled-blend-factor-0-me.patch
(
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated '\''Unhandled blend factor 0'\'' messages.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-Multisampling
# |
# | This patchset fixes the following Wine bugs:
# | * [#12652] Allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE.
# |
# | Modified files:
# | * dlls/wined3d/directx.c, dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h
# |
if test "$enable_wined3d_Multisampling" -eq 1; then
patch_apply wined3d-Multisampling/0001-wined3d-Allow-to-specify-multisampling-AA-quality-le.patch
(
echo '+ { "Austin English", "wined3d: Allow to specify multisampling AA quality levels via registry.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-Revert_PixelFormat
# |
# | This patchset fixes the following Wine bugs:
@ -2000,6 +1977,33 @@ if test "$enable_wined3d_Revert_PixelFormat" -eq 1; then
) >> "$patchlist"
fi
# Patchset wined3d-UnhandledBlendFactor
# |
# | Modified files:
# | * dlls/wined3d/state.c
# |
if test "$enable_wined3d_UnhandledBlendFactor" -eq 1; then
patch_apply wined3d-UnhandledBlendFactor/0001-wined3d-Silence-repeated-Unhandled-blend-factor-0-me.patch
(
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated '\''Unhandled blend factor 0'\'' messages.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-Multisampling
# |
# | This patchset fixes the following Wine bugs:
# | * [#12652] Allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE.
# |
# | Modified files:
# | * dlls/wined3d/directx.c, dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h
# |
if test "$enable_wined3d_Multisampling" -eq 1; then
patch_apply wined3d-Multisampling/0001-wined3d-Allow-to-specify-multisampling-AA-quality-le.patch
(
echo '+ { "Austin English", "wined3d: Allow to specify multisampling AA quality levels via registry.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-CSMT_Main
# |
# | This patchset fixes the following Wine bugs:
@ -2418,6 +2422,21 @@ if test "$enable_dxva2_Video_Decoder" -eq 1; then
) >> "$patchlist"
fi
# Patchset fltmgr-Stub_SYS
# |
# | This patchset fixes the following Wine bugs:
# | * [#23583] Add stub fltmgr.sys (filter manager driver)
# |
# | Modified files:
# | * configure.ac, dlls/fltmgr.sys/Makefile.in, dlls/fltmgr.sys/fltmgr.sys.spec, dlls/fltmgr.sys/main.c, loader/wine.inf.in
# |
if test "$enable_fltmgr_Stub_SYS" -eq 1; then
patch_apply fltmgr-Stub_SYS/0001-fltmgr.sys-add-stub-dll-try-3.patch
(
echo '+ { "Austin English", "fltmgr.sys: add stub dll.", 3 },';
) >> "$patchlist"
fi
# Patchset fonts-Missing_Fonts
# |
# | This patchset fixes the following Wine bugs:
@ -3773,21 +3792,6 @@ if test "$enable_server_CreateProcess_ACLs" -eq 1; then
) >> "$patchlist"
fi
# Patchset server-OpenProcess
# |
# | This patchset fixes the following Wine bugs:
# | * [#37087] Return an error when trying to open a terminated process
# |
# | Modified files:
# | * server/process.c, server/process.h
# |
if test "$enable_server_OpenProcess" -eq 1; then
patch_apply server-OpenProcess/0001-server-Return-error-when-opening-a-terminating-proce.patch
(
echo '+ { "Michael Müller", "server: Return error when opening a terminating process.", 3 },';
) >> "$patchlist"
fi
# Patchset server-Misc_ACL
# |
# | This patchset fixes the following Wine bugs:
@ -3805,6 +3809,21 @@ if test "$enable_server_Misc_ACL" -eq 1; then
) >> "$patchlist"
fi
# Patchset server-OpenProcess
# |
# | This patchset fixes the following Wine bugs:
# | * [#37087] Return an error when trying to open a terminated process
# |
# | Modified files:
# | * server/process.c, server/process.h
# |
if test "$enable_server_OpenProcess" -eq 1; then
patch_apply server-OpenProcess/0001-server-Return-error-when-opening-a-terminating-proce.patch
(
echo '+ { "Michael Müller", "server: Return error when opening a terminating process.", 3 },';
) >> "$patchlist"
fi
# Patchset server-JobObjects
# |
# | This patchset fixes the following Wine bugs: