Zebediah Figura : setupapi: Copy the INF file to C:/windows/inf/ and record it in the driver key.
Alexandre Julliard
julliard at winehq.org
Mon May 27 14:50:19 CDT 2019
Module: wine
Branch: master
Commit: d4c18c89d5437845a781c7e2a70301f05f0b82ae
URL: https://source.winehq.org/git/wine.git/?a=commit;h=d4c18c89d5437845a781c7e2a70301f05f0b82ae
Author: Zebediah Figura <z.figura12 at gmail.com>
Date: Fri May 24 23:33:53 2019 -0500
setupapi: Copy the INF file to C:/windows/inf/ and record it in the driver key.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/setupapi/devinst.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c
index f60fd53..9d0cb99 100644
--- a/dlls/setupapi/devinst.c
+++ b/dlls/setupapi/devinst.c
@@ -4684,7 +4684,10 @@ BOOL WINAPI SetupDiInstallDriverFiles(HDEVINFO devinfo, SP_DEVINFO_DATA *device_
*/
BOOL WINAPI SetupDiInstallDevice(HDEVINFO devinfo, SP_DEVINFO_DATA *device_data)
{
- WCHAR section[LINE_LEN], section_ext[LINE_LEN];
+ static const WCHAR infpathW[] = {'I','n','f','P','a','t','h',0};
+ static const WCHAR infsectionW[] = {'I','n','f','S','e','c','t','i','o','n',0};
+ static const WCHAR infsectionextW[] = {'I','n','f','S','e','c','t','i','o','n','E','x','t',0};
+ WCHAR section[LINE_LEN], section_ext[LINE_LEN], inf_path[MAX_PATH], *extptr, *filepart;
UINT install_flags = SPINST_ALL;
struct device *device;
struct driver *driver;
@@ -4711,7 +4714,7 @@ BOOL WINAPI SetupDiInstallDevice(HDEVINFO devinfo, SP_DEVINFO_DATA *device_data)
SetupFindFirstLineW(hinf, driver->mfg_key, driver->description, &ctx);
SetupGetStringFieldW(&ctx, 1, section, ARRAY_SIZE(section), NULL);
- SetupDiGetActualSectionToInstallW(hinf, section, section_ext, ARRAY_SIZE(section_ext), NULL, NULL);
+ SetupDiGetActualSectionToInstallW(hinf, section, section_ext, ARRAY_SIZE(section_ext), NULL, &extptr);
if ((l = create_driver_key(device, &driver_key)))
{
@@ -4730,6 +4733,15 @@ BOOL WINAPI SetupDiInstallDevice(HDEVINFO devinfo, SP_DEVINFO_DATA *device_data)
SetupTermDefaultQueueCallback(callback_ctx);
SetupCloseInfFile(hinf);
+
+ SetupCopyOEMInfW(driver->inf_path, NULL, SPOST_NONE, 0, inf_path, ARRAY_SIZE(inf_path), NULL, &filepart);
+ TRACE("Copied INF file %s to %s.\n", debugstr_w(driver->inf_path), debugstr_w(inf_path));
+
+ RegSetValueExW(driver_key, infpathW, 0, REG_SZ, (BYTE *)filepart, strlenW(filepart) * sizeof(WCHAR));
+ RegSetValueExW(driver_key, infsectionW, 0, REG_SZ, (BYTE *)section, strlenW(section) * sizeof(WCHAR));
+ if (extptr)
+ RegSetValueExW(driver_key, infsectionextW, 0, REG_SZ, (BYTE *)extptr, strlenW(extptr) * sizeof(WCHAR));
+
RegCloseKey(driver_key);
return TRUE;
}
More information about the wine-cvs
mailing list