https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b7042928089b360663f310...
commit b7042928089b360663f310a6a7aa0a2c0eb0326d Author: Victor Perevertkin victor.perevertkin@reactos.org AuthorDate: Wed Jan 13 04:13:22 2021 +0300 Commit: Victor Perevertkin victor.perevertkin@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); }
/*