From 09ce3c6e91a249945596a4e9bec04aaaaec41dab Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Sat, 28 Feb 2009 10:29:06 +0000 Subject: [PATCH] - 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. svn path=/trunk/; revision=39815 --- reactos/ntoskrnl/io/iomgr/drvrlist.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/reactos/ntoskrnl/io/iomgr/drvrlist.c b/reactos/ntoskrnl/io/iomgr/drvrlist.c index 8db497d210b..1528c6c1538 100644 --- a/reactos/ntoskrnl/io/iomgr/drvrlist.c +++ b/reactos/ntoskrnl/io/iomgr/drvrlist.c @@ -152,6 +152,7 @@ IopCreateServiceListEntry(PUNICODE_STRING ServiceName) RTL_QUERY_REGISTRY_TABLE QueryTable[7]; PSERVICE Service; NTSTATUS Status; + ULONG DefaultTag = ~0; DPRINT("ServiceName: '%wZ'\n", ServiceName); @@ -191,6 +192,9 @@ IopCreateServiceListEntry(PUNICODE_STRING ServiceName) 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,