[ros-diffs] [cgutman] 55355: [NTOSKRNL] - Don't check for the correct parent in IopActionInitChildServices - This function is also used to load drivers later for devices enumerated early in boot (before we hav...

cgutman at svn.reactos.org cgutman at svn.reactos.org
Tue Jan 31 18:26:03 UTC 2012


Author: cgutman
Date: Tue Jan 31 18:26:03 2012
New Revision: 55355

URL: http://svn.reactos.org/svn/reactos?rev=55355&view=rev
Log:
[NTOSKRNL]
- Don't check for the correct parent in IopActionInitChildServices
- This function is also used to load drivers later for devices enumerated early in boot (before we have access to the disk) and we want it to run for all devices on the system, not just those that are immediate children of the root node
- Fixes broken PnP in 3rd stage

Modified:
    branches/usb-bringup-trunk/ntoskrnl/io/pnpmgr/pnpmgr.c

Modified: branches/usb-bringup-trunk/ntoskrnl/io/pnpmgr/pnpmgr.c
URL: http://svn.reactos.org/svn/reactos/branches/usb-bringup-trunk/ntoskrnl/io/pnpmgr/pnpmgr.c?rev=55355&r1=55354&r2=55355&view=diff
==============================================================================
--- branches/usb-bringup-trunk/ntoskrnl/io/pnpmgr/pnpmgr.c [iso-8859-1] (original)
+++ branches/usb-bringup-trunk/ntoskrnl/io/pnpmgr/pnpmgr.c [iso-8859-1] Tue Jan 31 18:26:03 2012
@@ -2534,15 +2534,11 @@
    }
 
    /*
-    * Make sure this device node is a direct child of the parent device node
-    * that is given as an argument
+    * We don't want to check for a direct child because
+    * this function is called during boot to reinitialize
+    * devices with drivers that couldn't load yet due to
+    * stage 0 limitations (ie can't load from disk yet).
     */
-
-   if (DeviceNode->Parent != ParentDeviceNode)
-   {
-      DPRINT("Skipping 2+ level child\n");
-      return STATUS_SUCCESS;
-   }
 
    if (!(DeviceNode->Flags & DNF_PROCESSED))
    {




More information about the Ros-diffs mailing list