Module: wine
Branch: master
Commit: b781a00b143954ce6fc04feeb2af52e682df647d
URL:
https://source.winehq.org/git/wine.git/?a=commit;h=b781a00b143954ce6fc04fee…
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;