Sebastian Lackner : ntoskrnl.exe: Add support for async close processing.

Alexandre Julliard julliard at winehq.org
Thu Oct 13 14:34:01 CDT 2016


Module: wine
Branch: master
Commit: e20259bb6e5c7b5f6800e308b9d1eaf7294d7937
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e20259bb6e5c7b5f6800e308b9d1eaf7294d7937

Author: Sebastian Lackner <sebastian at fds-team.de>
Date:   Thu Oct 13 00:46:34 2016 +0200

ntoskrnl.exe: Add support for async close processing.

Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntoskrnl.exe/ntoskrnl.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 5d423e0..f3b6913 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -196,6 +196,12 @@ static NTSTATUS WINAPI dispatch_irp_completion( DEVICE_OBJECT *device, IRP *irp,
     }
     SERVER_END_REQ;
 
+    if (irp->Flags & IRP_CLOSE_OPERATION)
+    {
+        HeapFree( GetProcessHeap(), 0, file );
+        irp->Tail.Overlay.OriginalFileObject = NULL;
+    }
+
     HeapFree( GetProcessHeap(), 0, irp->UserBuffer );
     return STATUS_SUCCESS;
 }
@@ -292,7 +298,6 @@ static NTSTATUS dispatch_close( const irp_params_t *params, void *in_buff, ULONG
     irp->Flags |= IRP_CLOSE_OPERATION;
     dispatch_irp( device, irp, irp_handle );
 
-    HeapFree( GetProcessHeap(), 0, file );  /* FIXME: async close processing not supported */
     return STATUS_SUCCESS;
 }
 




More information about the wine-cvs mailing list