[NTOS]: Implement Configuration Manager routines for building a driver list, sorting...
authorSir Richard <sir_richard@svn.reactos.org>
Sat, 3 Apr 2010 07:44:38 +0000 (07:44 +0000)
committerSir Richard <sir_richard@svn.reactos.org>
Sat, 3 Apr 2010 07:44:38 +0000 (07:44 +0000)
commit959116f5217fc9b510e72b99a1db7689fdbcf1a1
tree33d812f421999c21feece854ab8b7e0257596ae9
parentd7c28ad92a70fd8005c1188caddf8caf8ac7ff70
[NTOS]: Implement Configuration Manager routines for building a driver list, sorting it, detecting circular dependencies and ordering, combining groups, tags, group orders and tag orders, etc. Replaces the "drvrlist" I/O interface currently in ReactOS.
[NTOS]: Use the new Cm interface in IopInitializeSystemDrivers to parse the ordered list of system drivers to load. Make it use ZwLoadDriver directly instead of having a hacked IopLoadDriver function.
[NTOS]: Drivers should not show up loading n times a reboot now (some drivers seemed to do this in the past when they failed to load).
[NTOS]: The system driver code could be further improved by checknig if the driver has already been loaded, or attempted and failed to load, but it is already much better now than in the past.
[PERF]: Boot-time improvement since the new system driver loading code uses low-level Cm interfaces (portability side-effect: can be shared with FreeLDR) instead of the complex parse-based object-manager-based system-calls.

svn path=/trunk/; revision=46693
reactos/ntoskrnl/config/cmboot.c
reactos/ntoskrnl/config/cmsysini.c
reactos/ntoskrnl/include/internal/cm.h
reactos/ntoskrnl/io/iomgr/driver.c
reactos/ntoskrnl/io/iomgr/drvrlist.c [deleted file]
reactos/ntoskrnl/io/iomgr/iomgr.c
reactos/ntoskrnl/ntoskrnl-generic.rbuild