[ros-diffs] [fireball] 39815: - If a driver has no Tag specified it should be defaulted to the max ULONG value, so it gets loaded after all drivers with correct tags. This fixes a problem of null.sys and beep.sys loading up to TagCount (20 for Base group) times during each boot.

fireball at svn.reactos.org fireball at svn.reactos.org
Sat Feb 28 11:29:07 CET 2009


Author: fireball
Date: Sat Feb 28 13:29:06 2009
New Revision: 39815

URL: http://svn.reactos.org/svn/reactos?rev=39815&view=rev
Log:
- If a driver has no Tag specified it should be defaulted to the max ULONG value, so it gets loaded after all drivers with correct tags. This fixes a problem of null.sys and beep.sys loading up to TagCount (20 for Base group) times during each boot.

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

Modified: trunk/reactos/ntoskrnl/io/iomgr/drvrlist.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/drvrlist.c?rev=39815&r1=39814&r2=39815&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/io/iomgr/drvrlist.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/io/iomgr/drvrlist.c [iso-8859-1] Sat Feb 28 13:29:06 2009
@@ -152,6 +152,7 @@
   RTL_QUERY_REGISTRY_TABLE QueryTable[7];
   PSERVICE Service;
   NTSTATUS Status;
+  ULONG DefaultTag = ~0;
 
   DPRINT("ServiceName: '%wZ'\n", ServiceName);
 
@@ -191,6 +192,9 @@
   QueryTable[5].Name = L"Tag";
   QueryTable[5].Flags = RTL_QUERY_REGISTRY_DIRECT;
   QueryTable[5].EntryContext = &Service->Tag;
+  QueryTable[5].DefaultData = &DefaultTag;
+  QueryTable[5].DefaultType = REG_DWORD;
+  QueryTable[5].DefaultLength = sizeof(DefaultTag);
 
   Status = RtlQueryRegistryValues(RTL_REGISTRY_SERVICES,
 				  ServiceName->Buffer,



More information about the Ros-diffs mailing list