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);
}
/*