diff --git a/reactos/ntoskrnl/io/iomgr/iofunc.c b/reactos/ntoskrnl/io/iomgr/iofunc.c index 9d99a82476b..eb32a4d715e 100644 --- a/reactos/ntoskrnl/io/iomgr/iofunc.c +++ b/reactos/ntoskrnl/io/iomgr/iofunc.c @@ -2240,8 +2240,17 @@ NtQueryInformationFile(IN HANDLE FileHandle, } _SEH2_END; - /* Unlock FO */ - IopUnlockFileObject(FileObject); + /* Free the event if we had one */ + if (LocalEvent) + { + ExFreePoolWithTag(Event, TAG_IO); + } + + /* If FO was locked, unlock it */ + if (FileObject->Flags & FO_SYNCHRONOUS_IO) + { + IopUnlockFileObject(FileObject); + } /* We're done with FastIO! */ ObDereferenceObject(FileObject);