Process AddReg directive in main section to install
[reactos.git] / reactos / lib / setupapi / devinst.c
index 9b59c64..732adf3 100644 (file)
@@ -2936,7 +2936,7 @@ BOOL WINAPI SetupDiCallClassInstaller(
         {
             LIST_ENTRY ClassCoInstallersListHead;
             LIST_ENTRY DeviceCoInstallersListHead;
-            HMODULE ClassInstallerLibrary;
+            HMODULE ClassInstallerLibrary = NULL;
             CLASS_INSTALL_PROC ClassInstaller = NULL;
             COINSTALLER_CONTEXT_DATA Context;
             PLIST_ENTRY ListEntry;
@@ -4828,7 +4828,6 @@ SetupDiInstallDevice(
     HKEY hClassKey = INVALID_HANDLE_VALUE;
     LONG rc;
     HWND hWnd;
-    PVOID callback_context;
     BOOL ret = FALSE; /* Return value */
 
     TRACE("%p %p\n", DeviceInfoSet, DeviceInfoData);
@@ -4916,6 +4915,17 @@ SetupDiInstallDevice(
     if (hKey == INVALID_HANDLE_VALUE)
         goto cleanup;
 
+    /* Install main section */
+    /* Files have already been copied in SetupDiInstallDriverFiles.
+     * Process only registry entries. */
+    *pSectionName = '\0';
+    Result = SetupInstallFromInfSectionW(hWnd, hInf, SectionName,
+        SPINST_REGISTRY, hKey, NULL, 0,
+        SetupDefaultQueueCallbackW, NULL,
+        NULL, NULL);
+    if (!Result)
+        goto cleanup;
+
     /* Write information to driver key */
     *pSectionName = UNICODE_NULL;
     TRACE("Write information to driver key\n");
@@ -5048,12 +5058,10 @@ nextfile:
 
     /* Install .HW section */
     wcscpy(pSectionName, L".HW");
-    callback_context = SetupInitDefaultQueueCallback(hWnd);
     Result = SetupInstallFromInfSectionW(hWnd, hInf, SectionName,
         SPINST_REGISTRY, hKey, NULL, 0,
-        SetupDefaultQueueCallbackW, callback_context,
+        SetupDefaultQueueCallbackW, NULL,
         NULL, NULL);
-    SetupTermDefaultQueueCallback(callback_context);
     if (!Result)
         goto cleanup;