- Consider Pnp initialized after system drivers finished loading.

- Fix reinitialization routines callbacks: processing reinit callbacks after EVERY driver load, including boot drivers is wrong. The sequence should be init boot drivers, call boot drivers reinit routines, load pnp drivers, load system drivers, call reinit routines. And then, when Pnp is initialized, call reinit routines after every driver module load event.

svn path=/trunk/; revision=39857
This commit is contained in:
Aleksey Bragin 2009-03-03 12:55:58 +00:00
parent b988d2bd3d
commit c933e1c643
2 changed files with 3 additions and 2 deletions

View file

@ -32,6 +32,7 @@ POBJECT_TYPE IoDriverObjectType = NULL;
#define TAG_RTLREGISTRY TAG('R', 'q', 'r', 'v')
extern BOOLEAN ExpInTextModeSetup;
extern BOOLEAN PnpSystemInit;
/* PRIVATE FUNCTIONS **********************************************************/
@ -482,7 +483,7 @@ IopInitializeDriverModule(
DeviceObject = DeviceObject->NextDevice;
}
IopReinitializeDrivers();
if (PnpSystemInit) IopReinitializeDrivers();
return STATUS_SUCCESS;
}

View file

@ -524,8 +524,8 @@ IoInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
IopInitializePnpServices(IopRootDeviceNode);
/* Load system start drivers */
PnpSystemInit = TRUE;
IopInitializeSystemDrivers();
PnpSystemInit = TRUE;
/* Destroy the group driver list */
IoDestroyDriverList();