https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b7042928089b360663f31…
commit b7042928089b360663f310a6a7aa0a2c0eb0326d
Author:     Victor Perevertkin <victor.perevertkin(a)reactos.org>
AuthorDate: Wed Jan 13 04:13:22 2021 +0300
Commit:     Victor Perevertkin <victor.perevertkin(a)reactos.org>
CommitDate: Wed Jan 27 05:15:15 2021 +0300
    [NTOS:IO] Add more enumeration requests during the boot process
    This is to ensure that all needed devices are initialized during the
    early boot
    CORE-7826
---
 ntoskrnl/io/iomgr/driver.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
diff --git a/ntoskrnl/io/iomgr/driver.c b/ntoskrnl/io/iomgr/driver.c
index 1e02c1cc213..45ce4a49827 100644
--- a/ntoskrnl/io/iomgr/driver.c
+++ b/ntoskrnl/io/iomgr/driver.c
@@ -1047,6 +1047,13 @@ IopInitializeBootDrivers(VOID)
      * See PiQueueDeviceAction function
      */
     PnPBootDriversLoaded = TRUE;
+
+    DbgPrint("BOOT DRIVERS LOADED\n");
+
+    PiQueueDeviceAction(IopRootDeviceNode->PhysicalDeviceObject,
+                        PiActionEnumDeviceTree,
+                        NULL,
+                        NULL);
 }
 CODE_SEG("INIT")
@@ -1056,6 +1063,8 @@ IopInitializeSystemDrivers(VOID)
 {
     PUNICODE_STRING *DriverList, *SavedList;
+    PiPerformSyncDeviceAction(IopRootDeviceNode->PhysicalDeviceObject,
PiActionEnumDeviceTree);
+
     /* No system drivers on the boot cd */
     if (KeLoaderBlock->SetupLdrBlock) return; // ExpInTextModeSetup
@@ -1080,6 +1089,11 @@ IopInitializeSystemDrivers(VOID)
     /* Free the list */
     ExFreePool(SavedList);
+
+    PiQueueDeviceAction(IopRootDeviceNode->PhysicalDeviceObject,
+                        PiActionEnumDeviceTree,
+                        NULL,
+                        NULL);
 }
 /*