Jacek Caban : ntoskrnl.exe: Support SL_INVOKE_ON_CANCEL in IoCompleteRequest.
Module: wine Branch: master Commit: b781a00b143954ce6fc04feeb2af52e682df647d URL: https://source.winehq.org/git/wine.git/?a=commit;h=b781a00b143954ce6fc04feeb... Author: Jacek Caban <jacek(a)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(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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;
participants (1)
-
Alexandre Julliard