From 7fb4b8cfc8d2aed75a4d15157059be0ff8c95c78 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 28 Mar 2015 23:54:21 +0100 Subject: [PATCH] Added patch for stub of fltmgr.sys (filter manager driver). --- README.md | 3 +- debian/changelog | 1 + .../0001-fltmgr.sys-add-stub-dll-try-3.patch | 271 ++++++++++++++++++ patches/fltmgr-Stub_SYS/definition | 1 + patches/patchinstall.sh | 127 ++++---- 5 files changed, 348 insertions(+), 55 deletions(-) create mode 100644 patches/fltmgr-Stub_SYS/0001-fltmgr.sys-add-stub-dll-try-3.patch create mode 100644 patches/fltmgr-Stub_SYS/definition diff --git a/README.md b/README.md index e21e4cd3..cd4d5151 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/debian/changelog b/debian/changelog index 9ff284b5..9963d9a1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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). diff --git a/patches/fltmgr-Stub_SYS/0001-fltmgr.sys-add-stub-dll-try-3.patch b/patches/fltmgr-Stub_SYS/0001-fltmgr.sys-add-stub-dll-try-3.patch new file mode 100644 index 00000000..01431dad --- /dev/null +++ b/patches/fltmgr-Stub_SYS/0001-fltmgr.sys-add-stub-dll-try-3.patch @@ -0,0 +1,271 @@ +From 9830d124c74e4181b213f99f3878bb3189ffe324 Mon Sep 17 00:00:00 2001 +From: Austin English +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 ++ ++#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 + diff --git a/patches/fltmgr-Stub_SYS/definition b/patches/fltmgr-Stub_SYS/definition new file mode 100644 index 00000000..8c9c5a28 --- /dev/null +++ b/patches/fltmgr-Stub_SYS/definition @@ -0,0 +1 @@ +Fixes: [23583] Add stub fltmgr.sys (filter manager driver) diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index c6a33259..3be50bb5 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -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: