[PATCH] newdev: Add DiInstallDevice stub.

Gijs Vermeulen gijsvrm at gmail.com
Fri Aug 27 10:49:28 CDT 2021


Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51299
Signed-off-by: Gijs Vermeulen <gijsvrm at gmail.com>
---
 dlls/newdev/main.c      |  8 ++++++++
 dlls/newdev/newdev.spec |  2 +-
 include/setupapi.h      | 29 ++++++++++++++++++++++++++---
 3 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/dlls/newdev/main.c b/dlls/newdev/main.c
index 72e7cbc690d..f06148b5342 100644
--- a/dlls/newdev/main.c
+++ b/dlls/newdev/main.c
@@ -166,3 +166,11 @@ BOOL WINAPI DiInstallDriverW(HWND parent, const WCHAR *inf_path, DWORD flags, BO
     FIXME("parent %p, inf_path %s, flags %#x, reboot %p, stub!\n", parent, debugstr_w(inf_path), flags, reboot);
     return TRUE;
 }
+
+BOOL WINAPI DiInstallDevice(HWND parent, HDEVINFO handle, PSP_DEVINFO_DATA devdata, PSP_DRVINFO_DATA drvdata,
+        DWORD flags, BOOL *reboot)
+{
+    FIXME("parent %p, handle %p, devdata %p, drvdata %p, flags %#x, reboot %p, stub!\n", parent, handle, devdata,
+            drvdata, flags, reboot);
+    return TRUE;
+}
diff --git a/dlls/newdev/newdev.spec b/dlls/newdev/newdev.spec
index 6d45c7e13ea..8bc33c90d72 100644
--- a/dlls/newdev/newdev.spec
+++ b/dlls/newdev/newdev.spec
@@ -1,5 +1,5 @@
 @ stub DeviceInternetSettingUiW
-@ stub DiInstallDevice
+@ stdcall DiInstallDevice(ptr ptr ptr ptr long ptr)
 @ stdcall DiInstallDriverA(ptr str long ptr)
 @ stdcall DiInstallDriverW(ptr wstr long ptr)
 @ stub DiRollbackDriver
diff --git a/include/setupapi.h b/include/setupapi.h
index 14e3774fc42..5ab817e0190 100644
--- a/include/setupapi.h
+++ b/include/setupapi.h
@@ -518,13 +518,36 @@ typedef struct _SP_DRVINFO_DATA_V2_W
 DECL_WINELIB_SETUPAPI_TYPE_AW(SP_DRVINFO_DATA_V2)
 DECL_WINELIB_SETUPAPI_TYPE_AW(PSP_DRVINFO_DATA_V2)
 
+DECL_WINELIB_SETUPAPI_TYPE_AW(SP_DRVINFO_DATA)
+DECL_WINELIB_SETUPAPI_TYPE_AW(PSP_DRVINFO_DATA)
+
+#ifdef UNICODE
+typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_V1;
+typedef PSP_DRVINFO_DATA_V1_W PSP_DRVINFO_DATA_V1;
+typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_V2;
+typedef PSP_DRVINFO_DATA_V2_W PSP_DRVINFO_DATA_V2;
+#else
+typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_V1;
+typedef PSP_DRVINFO_DATA_V1_A PSP_DRVINFO_DATA_V1;
+typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_V2;
+typedef PSP_DRVINFO_DATA_V2_A PSP_DRVINFO_DATA_V2;
+#endif
+
+#if USE_SP_DRVINFO_DATA_V1
+typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_A;
+typedef PSP_DRVINFO_DATA_V1_A PSP_DRVINFO_DATA_A;
+typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_W;
+typedef PSP_DRVINFO_DATA_V1_W PSP_DRVINFO_DATA_W;
+typedef SP_DRVINFO_DATA_V1 SP_DRVINFO_DATA;
+typedef PSP_DRVINFO_DATA_V1 PSP_DRVINFO_DATA;
+#else
 typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_A;
 typedef PSP_DRVINFO_DATA_V2_A PSP_DRVINFO_DATA_A;
 typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_W;
 typedef PSP_DRVINFO_DATA_V2_W PSP_DRVINFO_DATA_W;
-
-DECL_WINELIB_SETUPAPI_TYPE_AW(SP_DRVINFO_DATA)
-DECL_WINELIB_SETUPAPI_TYPE_AW(PSP_DRVINFO_DATA)
+typedef SP_DRVINFO_DATA_V2 SP_DRVINFO_DATA;
+typedef PSP_DRVINFO_DATA_V2 PSP_DRVINFO_DATA;
+#endif
 
 typedef struct _SP_DRVINFO_DETAIL_DATA_A
 {
-- 
2.33.0




More information about the wine-devel mailing list