[ros-diffs] [fireball] 39857: - 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.

fireball at svn.reactos.org fireball at svn.reactos.org
Tue Mar 3 13:55:59 CET 2009


Author: fireball
Date: Tue Mar  3 15:55:58 2009
New Revision: 39857

URL: http://svn.reactos.org/svn/reactos?rev=39857&view=rev
Log:
- 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.

Modified:
    trunk/reactos/ntoskrnl/io/iomgr/driver.c
    trunk/reactos/ntoskrnl/io/iomgr/iomgr.c

Modified: trunk/reactos/ntoskrnl/io/iomgr/driver.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/driver.c?rev=39857&r1=39856&r2=39857&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/io/iomgr/driver.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/io/iomgr/driver.c [iso-8859-1] Tue Mar  3 15:55:58 2009
@@ -32,6 +32,7 @@
 #define TAG_RTLREGISTRY TAG('R', 'q', 'r', 'v')
 
 extern BOOLEAN ExpInTextModeSetup;
+extern BOOLEAN PnpSystemInit;
 
 /* PRIVATE FUNCTIONS **********************************************************/
 
@@ -482,7 +483,7 @@
        DeviceObject = DeviceObject->NextDevice;
    }
 
-   IopReinitializeDrivers();
+   if (PnpSystemInit) IopReinitializeDrivers();
 
    return STATUS_SUCCESS;
 }

Modified: trunk/reactos/ntoskrnl/io/iomgr/iomgr.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/iomgr.c?rev=39857&r1=39856&r2=39857&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/io/iomgr/iomgr.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/io/iomgr/iomgr.c [iso-8859-1] Tue Mar  3 15:55:58 2009
@@ -524,8 +524,8 @@
     IopInitializePnpServices(IopRootDeviceNode);
 
     /* Load system start drivers */
+    IopInitializeSystemDrivers();
     PnpSystemInit = TRUE;
-    IopInitializeSystemDrivers();
 
     /* Destroy the group driver list */
     IoDestroyDriverList();



More information about the Ros-diffs mailing list