Jacek Caban : ntoskrnl.exe: Support SL_INVOKE_ON_CANCEL in IoCompleteRequest.

Alexandre Julliard julliard at winehq.org
Tue Apr 30 15:59:56 CDT 2019


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

Author: Jacek Caban <jacek at 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 at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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;




More information about the wine-cvs mailing list