Module: wine Branch: master Commit: e20259bb6e5c7b5f6800e308b9d1eaf7294d7937 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e20259bb6e5c7b5f6800e308b9... Author: Sebastian Lackner <sebastian(a)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(a)fds-team.de> Signed-off-by: Alexandre Julliard <julliard(a)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; }