diff --git a/reactos/ntoskrnl/io/iomgr/driver.c b/reactos/ntoskrnl/io/iomgr/driver.c index 41300a60060..84eabef6dfb 100644 --- a/reactos/ntoskrnl/io/iomgr/driver.c +++ b/reactos/ntoskrnl/io/iomgr/driver.c @@ -1538,6 +1538,10 @@ try_again: KernelMode, (PVOID*)&DriverObject, NULL); + + /* Close the extra handle */ + ZwClose(hDriver); + if (!NT_SUCCESS(Status)) { /* Fail */ @@ -1546,9 +1550,6 @@ try_again: return Status; } - /* Close the extra handle */ - ZwClose(hDriver); - DriverObject->HardwareDatabase = &IopHardwareDatabaseKey; DriverObject->DriverStart = ModuleObject ? ModuleObject->DllBase : 0; DriverObject->DriverSize = ModuleObject ? ModuleObject->SizeOfImage : 0; @@ -1564,6 +1565,7 @@ try_again: DriverObject->DriverSection = NULL; ObMakeTemporaryObject(DriverObject); ObDereferenceObject(DriverObject); + return Status; } else {