mirror of
https://github.com/reactos/reactos.git
synced 2024-10-19 23:50:05 +00:00
[NTOSKRNL]
- First check if a driver object exists before trying to load the service module to properly handle boot drivers svn path=/trunk/; revision=55743
This commit is contained in:
parent
b175abf7c1
commit
94da11bec8
|
@ -560,10 +560,13 @@ IopAttachFilterDriversCallback(
|
||||||
ServiceName.MaximumLength =
|
ServiceName.MaximumLength =
|
||||||
ServiceName.Length = (USHORT)wcslen(Filters) * sizeof(WCHAR);
|
ServiceName.Length = (USHORT)wcslen(Filters) * sizeof(WCHAR);
|
||||||
|
|
||||||
|
Status = IopGetDriverObject(&DriverObject,
|
||||||
|
&ServiceName,
|
||||||
|
FALSE);
|
||||||
|
if (!NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
/* Load and initialize the filter driver */
|
/* Load and initialize the filter driver */
|
||||||
Status = IopLoadServiceModule(&ServiceName, &ModuleObject);
|
Status = IopLoadServiceModule(&ServiceName, &ModuleObject);
|
||||||
if (Status != STATUS_IMAGE_ALREADY_LOADED)
|
|
||||||
{
|
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -572,19 +575,6 @@ IopAttachFilterDriversCallback(
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
/* get existing DriverObject pointer */
|
|
||||||
Status = IopGetDriverObject(
|
|
||||||
&DriverObject,
|
|
||||||
&ServiceName,
|
|
||||||
FALSE);
|
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
{
|
|
||||||
DPRINT1("IopGetDriverObject() returned status 0x%08x!\n", Status);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = IopInitializeDevice(DeviceNode, DriverObject);
|
Status = IopInitializeDevice(DeviceNode, DriverObject);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
|
|
Loading…
Reference in a new issue