[Bug 49267] Denuvo Anti-Cheat 'denuvo-anti-cheat.sys' needs support for CustomTimerDpc via ntoskrnl.exe.KeSetTimer{Ex}

WineHQ Bugzilla wine-bugs at winehq.org
Fri May 29 02:09:41 CDT 2020


https://bugs.winehq.org/show_bug.cgi?id=49267

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|NEW                         |RESOLVED
      Fixed by SHA1|                            |a4a903f97a11625ea36a8eb0425
                   |                            |f89be44d853c0

--- Comment #1 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

this is fixed by commits:

*
https://source.winehq.org/git/wine.git/commitdiff/e49be2db28bbcd7ac82326c9cceab221b8260787
("ntoskrnl.exe: Partially implement KeInitializeDpc() function.)

*
https://source.winehq.org/git/wine.git/commitdiff/68a03b6393220a8f24f862da9db2369349042d50
("ntoskrnl.exe: Reimplement KeSetTimerEx() on top of thread pool.")

*
https://source.winehq.org/git/wine.git/commitdiff/4584ffaddae059ae2308d6f1f81fe143608763d8
("ntoskrnl.exe: Avoid leaking events on multipe KeSetTimerEx() calls.")

*
https://source.winehq.org/git/wine.git/commitdiff/6cb3588969a9cbad1232dfdb9c0811ffdc7ead2f
("ntoskrnl.exe: Cancel active timer before setting it.")

*
https://source.winehq.org/git/wine.git/commitdiff/a4a903f97a11625ea36a8eb0425f89be44d853c0
("ntoskrnl.exe: Support DPCs with timers.")

Thanks Paul

--- snip ---
...
00f8:Call ntoskrnl.exe.KeInitializeTimer(04b600c4) ret=00caeab7
00f8:trace:ntoskrnl:KeInitializeTimerEx timer 0000000004B600C4, type 0.
00f8:Ret  ntoskrnl.exe.KeInitializeTimer() retval=00000020 ret=00caeab7
00f8:Call ntoskrnl.exe.KeInitializeDpc(04b60104,00caecf0,04b6009c) ret=00caeacb
00f8:fixme:ntoskrnl:KeInitializeDpc dpc 0000000004B60104, deferred_routine
0000000000CAECF0, deferred_context 0000000004B6009C semi-stub.
00f8:Ret  ntoskrnl.exe.KeInitializeDpc() retval=00000066 ret=00caeacb
00f8:Call ntoskrnl.exe.KeSetTimer(04b600c4,ffffffffff676980,04b60104)
ret=00caeae9
00f8:trace:ntoskrnl:KeSetTimer timer 0000000004B600C4, duetime
ffffffffff676980, dpc 0000000004B60104.
00f8:trace:ntoskrnl:KeSetTimerEx timer 0000000004B600C4, duetime
ffffffffff676980, period 0, dpc 0000000004B60104.
00f8:Call KERNEL32.CreateThreadpoolTimer(0023b1c0,04b600c4,00000000)
ret=0023b083
00f8:Call ntdll.TpAllocTimer(0706fa98,0023b1c0,04b600c4,00000000) ret=7b054ce9
00f8:Ret  ntdll.TpAllocTimer() retval=00000000 ret=7b054ce9
00f8:Ret  KERNEL32.CreateThreadpoolTimer() retval=000fc050 ret=0023b083
00f8:Call ntdll.TpSetTimer(000fc050,0706fb68,00000000,00000000) ret=0023b0d3
00f8:Ret  ntdll.TpSetTimer() retval=00000000 ret=0023b0d3
00f8:Ret  ntoskrnl.exe.KeSetTimer() retval=0706fb00 ret=00caeae9 
...
00fc:Starting thread proc 0x7bcd18b0 (arg=0x78fa30) 
...
00fc:trace:ntoskrnl:ke_timer_complete_proc instance 000000000717FC90, timer
0000000004B6016C, tp_timer 000000000078FB40.
00fc:trace:ntoskrnl:ke_timer_complete_proc Calling dpc->DeferredRoutine
0000000000CAECF0, dpc->DeferredContext 0000000004B60144.
00fc:Call ntoskrnl.exe.KeAcquireSpinLockRaiseToDpc(008ec0c8) ret=00c890b3
00fc:trace:ntoskrnl:KeAcquireSpinLockRaiseToDpc lock 00000000008EC0C8.
00fc:trace:ntoskrnl:KeAcquireSpinLockAtDpcLevel lock 00000000008EC0C8.
00fc:Ret  ntoskrnl.exe.KeAcquireSpinLockRaiseToDpc() retval=00000000
ret=00c890b3
00fc:Call ntoskrnl.exe.KeReleaseSpinLock(008ec0c8,00000000) ret=00c83ad9
00fc:trace:ntoskrnl:KeReleaseSpinLock lock 00000000008EC0C8, irql 0.
00fc:trace:ntoskrnl:KeReleaseSpinLockFromDpcLevel lock 00000000008EC0C8.
00fc:Ret  ntoskrnl.exe.KeReleaseSpinLock() retval=00000001 ret=00c83ad9
00fc:Call ntoskrnl.exe.KeAcquireSpinLockRaiseToDpc(008e41d8) ret=00c890b3
00fc:trace:ntoskrnl:KeAcquireSpinLockRaiseToDpc lock 00000000008E41D8.
00fc:trace:ntoskrnl:KeAcquireSpinLockAtDpcLevel lock 00000000008E41D8.
00fc:Ret  ntoskrnl.exe.KeAcquireSpinLockRaiseToDpc() retval=00000000
ret=00c890b3
00fc:Call ntoskrnl.exe.KeReleaseSpinLock(008e41d8,00000000) ret=00c84909
00fc:trace:ntoskrnl:KeReleaseSpinLock lock 00000000008E41D8, irql 0.
00fc:trace:ntoskrnl:KeReleaseSpinLockFromDpcLevel lock 00000000008E41D8.
00fc:Ret  ntoskrnl.exe.KeReleaseSpinLock() retval=00000001 ret=00c84909
00fc:Call ntoskrnl.exe.KeSetEvent(008e41e0,00000000,00000000) ret=00c846df
00fc:trace:ntoskrnl:KeSetEvent event 00000000008E41E0, increment 0, wait 0.
00fc:Call KERNEL32.SetEvent(00000050) ret=0023abe9
00fc:Call ntdll.NtSetEvent(00000050,00000000) ret=7b050b0d
00fc:Ret  ntdll.NtSetEvent() retval=00000000 ret=7b050b0d
...
00f8:Ret  ntdll.NtWaitForMultipleObjects() retval=00000000 ret=0023a7e9
...
00fc:Ret  KERNEL32.SetEvent() retval=00000001 ret=0023abe9
00fc:Ret  ntoskrnl.exe.KeSetEvent() retval=00000000 ret=00c846df
...
00f8:Call KERNEL32.CloseHandle(00000050) ret=0023a8a7
00f8:Call ntdll.NtClose(00000050) ret=7b03b564
00f8:Ret  ntdll.NtClose() retval=00000000 ret=7b03b564
00f8:Ret  KERNEL32.CloseHandle() retval=00000001 ret=0023a8a7
00f8:Ret  ntoskrnl.exe.KeWaitForSingleObject() retval=00000000 ret=00c8470b 
--- snip ---

$ wine --version
wine-5.9-154-gf6595bbdff

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list