[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
This commit is contained in:
Victor Perevertkin 2021-01-13 04:13:22 +03:00
parent e468da06be
commit b704292808
No known key found for this signature in database
GPG key ID: C750B7222E9C7830

View file

@ -1047,6 +1047,13 @@ IopInitializeBootDrivers(VOID)
* See PiQueueDeviceAction function * See PiQueueDeviceAction function
*/ */
PnPBootDriversLoaded = TRUE; PnPBootDriversLoaded = TRUE;
DbgPrint("BOOT DRIVERS LOADED\n");
PiQueueDeviceAction(IopRootDeviceNode->PhysicalDeviceObject,
PiActionEnumDeviceTree,
NULL,
NULL);
} }
CODE_SEG("INIT") CODE_SEG("INIT")
@ -1056,6 +1063,8 @@ IopInitializeSystemDrivers(VOID)
{ {
PUNICODE_STRING *DriverList, *SavedList; PUNICODE_STRING *DriverList, *SavedList;
PiPerformSyncDeviceAction(IopRootDeviceNode->PhysicalDeviceObject, PiActionEnumDeviceTree);
/* No system drivers on the boot cd */ /* No system drivers on the boot cd */
if (KeLoaderBlock->SetupLdrBlock) return; // ExpInTextModeSetup if (KeLoaderBlock->SetupLdrBlock) return; // ExpInTextModeSetup
@ -1080,6 +1089,11 @@ IopInitializeSystemDrivers(VOID)
/* Free the list */ /* Free the list */
ExFreePool(SavedList); ExFreePool(SavedList);
PiQueueDeviceAction(IopRootDeviceNode->PhysicalDeviceObject,
PiActionEnumDeviceTree,
NULL,
NULL);
} }
/* /*