diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 08c292ad..0569986f 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -6129,14 +6129,19 @@ fi # Patchset setupapi-SetupDiGetDeviceInterfaceDetail # | +# | This patchset fixes the following Wine bugs: +# | * [#45963] - Add SetupDiInstallDeviceInterfaces/SetupDiRegisterCoDeviceInstallers stubs +# | # | Modified files: # | * dlls/setupapi/devinst.c, dlls/setupapi/setupapi.spec, dlls/setupapi/tests/devinst.c # | if test "$enable_setupapi_SetupDiGetDeviceInterfaceDetail" -eq 1; then - patch_apply setupapi-SetupDiGetDeviceInterfaceDetail/0001-setupapi-Add-spec-file-stub-entry-for-SetupDiInstall.patch - patch_apply setupapi-SetupDiGetDeviceInterfaceDetail/0002-setupapi-SetupDiGetDeviceInterfaceDetail-should-fill.patch + patch_apply setupapi-SetupDiGetDeviceInterfaceDetail/0001-setupapi-Add-SetupDiInstallDeviceInterfaces.patch + patch_apply setupapi-SetupDiGetDeviceInterfaceDetail/0002-setupapi-Add-SetupDiRegisterCoDeviceInstallers-stub.patch + patch_apply setupapi-SetupDiGetDeviceInterfaceDetail/0003-setupapi-SetupDiGetDeviceInterfaceDetail-should-fill.patch ( - printf '%s\n' '+ { "Michael Müller", "setupapi: Add spec file stub entry for SetupDiInstallDeviceInterfaces and SetupDiRegisterCoDeviceInstallers.", 1 },'; + printf '%s\n' '+ { "Alistair Leslie-Hughes", "setupapi: Add SetupDiInstallDeviceInterfaces.", 1 },'; + printf '%s\n' '+ { "Alistair Leslie-Hughes", "setupapi: Add SetupDiRegisterCoDeviceInstallers stub.", 1 },'; printf '%s\n' '+ { "Michael Müller", "setupapi: SetupDiGetDeviceInterfaceDetail should fill out DeviceInfoData even if the buffer for DeviceInterfaceData is too small.", 1 },'; ) >> "$patchlist" fi diff --git a/patches/setupapi-SetupDiGetDeviceInterfaceDetail/0001-setupapi-Add-SetupDiInstallDeviceInterfaces.patch b/patches/setupapi-SetupDiGetDeviceInterfaceDetail/0001-setupapi-Add-SetupDiInstallDeviceInterfaces.patch new file mode 100644 index 00000000..975456fa --- /dev/null +++ b/patches/setupapi-SetupDiGetDeviceInterfaceDetail/0001-setupapi-Add-SetupDiInstallDeviceInterfaces.patch @@ -0,0 +1,47 @@ +From b396392de5b090fb78a358dec7a8790ecedf2240 Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Mon, 15 Oct 2018 12:05:41 +1100 +Subject: [PATCH] setupapi: Add SetupDiInstallDeviceInterfaces + +Wine-bug: https://bugs.winehq.org/show_bug.cgi?id=45963 +Signed-off-by: Alistair Leslie-Hughes +--- + dlls/setupapi/devinst.c | 12 ++++++++++++ + dlls/setupapi/setupapi.spec | 1 + + 2 files changed, 13 insertions(+) + +diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c +index 771fc70..b15e580 100644 +--- a/dlls/setupapi/devinst.c ++++ b/dlls/setupapi/devinst.c +@@ -4020,3 +4020,15 @@ BOOL WINAPI SetupDiGetDevicePropertyW(HDEVINFO info_set, PSP_DEVINFO_DATA info_d + SetLastError(ERROR_NOT_FOUND); + return FALSE; + } ++ ++/*********************************************************************** ++ * SetupDiInstallDeviceInterfaces (SETUPAPI.@) ++ */ ++BOOL WINAPI SetupDiInstallDeviceInterfaces(HDEVINFO dev, PSP_DEVINFO_DATA info_data) ++{ ++ FIXME("%p, %p stub\n", dev, info_data); ++ ++ SetLastError(ERROR_CALL_NOT_IMPLEMENTED); ++ return FALSE; ++} ++ +diff --git a/dlls/setupapi/setupapi.spec b/dlls/setupapi/setupapi.spec +index 99509e1..3f906ed 100644 +--- a/dlls/setupapi/setupapi.spec ++++ b/dlls/setupapi/setupapi.spec +@@ -367,6 +367,7 @@ + @ stub SetupDiInstallClassExW + @ stdcall SetupDiInstallClassW(long wstr long ptr) + @ stub SetupDiInstallDevice ++@ stdcall SetupDiInstallDeviceInterfaces(ptr ptr) + @ stub SetupDiInstallDriverFiles + @ stdcall SetupDiLoadClassIcon(ptr ptr ptr) + @ stub SetupDiMoveDuplicateDevice +-- +1.9.1 + diff --git a/patches/setupapi-SetupDiGetDeviceInterfaceDetail/0001-setupapi-Add-spec-file-stub-entry-for-SetupDiInstall.patch b/patches/setupapi-SetupDiGetDeviceInterfaceDetail/0001-setupapi-Add-spec-file-stub-entry-for-SetupDiInstall.patch deleted file mode 100644 index 774b8c49..00000000 --- a/patches/setupapi-SetupDiGetDeviceInterfaceDetail/0001-setupapi-Add-spec-file-stub-entry-for-SetupDiInstall.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 7847b8fd4f68d229e5fc478e755fb212fdff3431 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Thu, 18 Aug 2016 18:37:29 +0200 -Subject: setupapi: Add spec file stub entry for SetupDiInstallDeviceInterfaces - and SetupDiRegisterCoDeviceInstallers. - ---- - dlls/setupapi/setupapi.spec | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/dlls/setupapi/setupapi.spec b/dlls/setupapi/setupapi.spec -index 0eb8359..4a4d193 100644 ---- a/dlls/setupapi/setupapi.spec -+++ b/dlls/setupapi/setupapi.spec -@@ -367,6 +367,7 @@ - @ stub SetupDiInstallClassExW - @ stdcall SetupDiInstallClassW(long wstr long ptr) - @ stub SetupDiInstallDevice -+@ stub SetupDiInstallDeviceInterfaces - @ stub SetupDiInstallDriverFiles - @ stdcall SetupDiLoadClassIcon(ptr ptr ptr) - @ stub SetupDiMoveDuplicateDevice -@@ -379,6 +380,7 @@ - @ stdcall SetupDiOpenDeviceInterfaceA(ptr str long ptr) - @ stub SetupDiOpenDeviceInterfaceRegKey - @ stdcall SetupDiOpenDeviceInterfaceW(ptr wstr long ptr) -+@ stub SetupDiRegisterCoDeviceInstallers - @ stdcall SetupDiRegisterDeviceInfo(ptr ptr long ptr ptr ptr) - @ stdcall SetupDiRemoveDevice(ptr ptr) - @ stdcall SetupDiRemoveDeviceInterface(ptr ptr) --- -2.9.0 - diff --git a/patches/setupapi-SetupDiGetDeviceInterfaceDetail/0002-setupapi-Add-SetupDiRegisterCoDeviceInstallers-stub.patch b/patches/setupapi-SetupDiGetDeviceInterfaceDetail/0002-setupapi-Add-SetupDiRegisterCoDeviceInstallers-stub.patch new file mode 100644 index 00000000..a4d00387 --- /dev/null +++ b/patches/setupapi-SetupDiGetDeviceInterfaceDetail/0002-setupapi-Add-SetupDiRegisterCoDeviceInstallers-stub.patch @@ -0,0 +1,44 @@ +From 8cba6e456b2eaac13fac4190ee77218e9a3f4f95 Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Mon, 15 Oct 2018 12:09:40 +1100 +Subject: [PATCH] setupapi: Add SetupDiRegisterCoDeviceInstallers stub + +Signed-off-by: Alistair Leslie-Hughes +--- + dlls/setupapi/devinst.c | 10 ++++++++++ + dlls/setupapi/setupapi.spec | 1 + + 2 files changed, 11 insertions(+) + +diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c +index b15e580..3f8949e 100644 +--- a/dlls/setupapi/devinst.c ++++ b/dlls/setupapi/devinst.c +@@ -4032,3 +4032,13 @@ BOOL WINAPI SetupDiInstallDeviceInterfaces(HDEVINFO dev, PSP_DEVINFO_DATA info_d + return FALSE; + } + ++/*********************************************************************** ++ * SetupDiRegisterCoDeviceInstallers (SETUPAPI.@) ++ */ ++BOOL WINAPI SetupDiRegisterCoDeviceInstallers(HDEVINFO dev, PSP_DEVINFO_DATA info_data) ++{ ++ FIXME("%p, %p stub\n", dev, info_data); ++ ++ SetLastError(ERROR_CALL_NOT_IMPLEMENTED); ++ return FALSE; ++} +diff --git a/dlls/setupapi/setupapi.spec b/dlls/setupapi/setupapi.spec +index 3f906ed..125b205 100644 +--- a/dlls/setupapi/setupapi.spec ++++ b/dlls/setupapi/setupapi.spec +@@ -380,6 +380,7 @@ + @ stdcall SetupDiOpenDeviceInterfaceA(ptr str long ptr) + @ stub SetupDiOpenDeviceInterfaceRegKey + @ stdcall SetupDiOpenDeviceInterfaceW(ptr wstr long ptr) ++@ stdcall SetupDiRegisterCoDeviceInstallers(ptr ptr) + @ stdcall SetupDiRegisterDeviceInfo(ptr ptr long ptr ptr ptr) + @ stdcall SetupDiRemoveDevice(ptr ptr) + @ stdcall SetupDiRemoveDeviceInterface(ptr ptr) +-- +1.9.1 + diff --git a/patches/setupapi-SetupDiGetDeviceInterfaceDetail/0002-setupapi-SetupDiGetDeviceInterfaceDetail-should-fill.patch b/patches/setupapi-SetupDiGetDeviceInterfaceDetail/0003-setupapi-SetupDiGetDeviceInterfaceDetail-should-fill.patch similarity index 100% rename from patches/setupapi-SetupDiGetDeviceInterfaceDetail/0002-setupapi-SetupDiGetDeviceInterfaceDetail-should-fill.patch rename to patches/setupapi-SetupDiGetDeviceInterfaceDetail/0003-setupapi-SetupDiGetDeviceInterfaceDetail-should-fill.patch diff --git a/patches/setupapi-SetupDiGetDeviceInterfaceDetail/definition b/patches/setupapi-SetupDiGetDeviceInterfaceDetail/definition index 90be1042..cd8812cf 100644 --- a/patches/setupapi-SetupDiGetDeviceInterfaceDetail/definition +++ b/patches/setupapi-SetupDiGetDeviceInterfaceDetail/definition @@ -1 +1,2 @@ +Fixes: [45963] - Add SetupDiInstallDeviceInterfaces/SetupDiRegisterCoDeviceInstallers stubs Fixes: Fill out DeviceInfoData in SetupDiGetDeviceInterfaceDetail even if interface buffer is too small