[PATCH 3/4] dpinst: Copy the INF and catalog files to the driver store.

Zebediah Figura zfigura at codeweavers.com
Mon Feb 7 23:36:09 CST 2022


Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
 programs/dpinst/dpinst.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/programs/dpinst/dpinst.c b/programs/dpinst/dpinst.c
index afcadffec53..f883dcb8689 100644
--- a/programs/dpinst/dpinst.c
+++ b/programs/dpinst/dpinst.c
@@ -260,6 +260,7 @@ static void install_driver(const struct copy_context *copy_ctx, const WCHAR *dri
 static void install_inf(const WCHAR *root, const WCHAR *filename)
 {
     WCHAR version[LINE_LEN], mfg_key[LINE_LEN], manufacturer[LINE_LEN];
+    SP_FILE_COPY_PARAMS_W params = {0};
     struct copy_context copy_ctx;
     WCHAR *filename_abs;
     void *default_ctx;
@@ -310,6 +311,26 @@ static void install_inf(const WCHAR *root, const WCHAR *filename)
             install_driver(&copy_ctx, get_string_field(&ctx, 1));
     }
 
+    params.cbSize = sizeof(params);
+    params.QueueHandle = copy_ctx.queue;
+    params.SourceRootPath = copy_ctx.src_root;
+    params.SourceFilename = filename;
+    params.TargetDirectory = copy_ctx.dst_root;
+    params.TargetFilename = filename;
+    params.CopyStyle = SP_COPY_NODECOMP;
+    if (!SetupQueueCopyIndirectW(&params))
+        ERR("Failed to queue copy, error %lu.\n", GetLastError());
+
+    if (SetupFindFirstLineW(copy_ctx.hinf, L"Version", L"CatalogFile", &ctx)
+            && (params.SourceFilename = get_string_field(&ctx, 1)))
+    {
+        TRACE("Copying catalog file %s.\n", debugstr_w(params.SourceFilename));
+
+        params.TargetFilename = params.SourceFilename;
+        if (!SetupQueueCopyIndirectW(&params))
+            ERR("Failed to queue copy, error %lu.\n", GetLastError());
+    }
+
     default_ctx = SetupInitDefaultQueueCallback(NULL);
     if (!SetupCommitFileQueueW(NULL, copy_ctx.queue, SetupDefaultQueueCallbackW, default_ctx))
         ERR("Failed to commit queue, error %lu.\n", GetLastError());
-- 
2.34.1




More information about the wine-devel mailing list