Module: wine Branch: master Commit: b781a00b143954ce6fc04feeb2af52e682df647d URL: https://source.winehq.org/git/wine.git/?a=commit;h=b781a00b143954ce6fc04feeb...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Apr 30 16:36:56 2019 +0200
ntoskrnl.exe: Support SL_INVOKE_ON_CANCEL in IoCompleteRequest.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ntoskrnl.exe/ntoskrnl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index 4b6c79d..6e00041 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -2218,13 +2218,14 @@ VOID WINAPI IoCompleteRequest( IRP *irp, UCHAR priority_boost ) irpsp = irp->Tail.Overlay.s.u2.CurrentStackLocation; routine = irpsp->CompletionRoutine; call_flag = 0; - /* FIXME: add SL_INVOKE_ON_CANCEL support */ if (routine) { if ((irpsp->Control & SL_INVOKE_ON_SUCCESS) && STATUS_SUCCESS == status) call_flag = 1; if ((irpsp->Control & SL_INVOKE_ON_ERROR) && STATUS_SUCCESS != status) call_flag = 1; + if ((irpsp->Control & SL_INVOKE_ON_CANCEL) && irp->Cancel) + call_flag = 1; } ++irp->CurrentLocation; ++irp->Tail.Overlay.s.u2.CurrentStackLocation;