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

WineHQ Bugzilla wine-bugs at winehq.org
Wed May 27 16:42:05 CDT 2020


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

            Bug ID: 49267
           Summary: Denuvo Anti-Cheat 'denuvo-anti-cheat.sys' needs
                    support for CustomTimerDpc via
                    ntoskrnl.exe.KeSetTimer{Ex}
           Product: Wine
           Version: 5.9
          Hardware: x86-64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ntoskrnl
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net
      Distribution: ---

Hello folks,

continuation of bug 49230 (split out from bug 49194).

--- snip ---
$ WINEDEBUG=+seh,+relay,+int,+ntoskrnl,+ntdll,+reg wine net start "Denuvo
Anti-Cheat" >>log.txt 2>&1
...
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, DeferredRoutine
0000000000CAECF0, DeferredContext 0000000004B6009C, Dpc->DeferredRoutine
0000000000000000 stub
00f8:Ret  ntoskrnl.exe.KeInitializeDpc() retval=00000085 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:fixme:ntoskrnl:KeSetTimerEx Unhandled DPC 0000000004B60104.
00f8:Ret  ntoskrnl.exe.KeSetTimer() retval=00000000 ret=00caeae9 
...
--- snip ---

Wine source:

https://source.winehq.org/git/wine.git/blob/e48fabff525061c8eea9558084a97308cebe6b7b:/dlls/ntoskrnl.exe/sync.c#l414

--- snip ---
 414 /***********************************************************************
 415  *           KeSetTimerEx (NTOSKRNL.EXE.@)
 416  */
 417 BOOLEAN WINAPI KeSetTimerEx( KTIMER *timer, LARGE_INTEGER duetime, LONG
period, KDPC *dpc )
 418 {
 419     BOOL ret;
 420 
 421     TRACE("timer %p, duetime %s, period %d, dpc %p.\n",
 422         timer, wine_dbgstr_longlong(duetime.QuadPart), period, dpc);
 423 
 424     if (dpc)
 425     {
 426         FIXME("Unhandled DPC %p.\n", dpc);
 427         return FALSE;
 428     }
 429 
...
--- snip ---

Microsoft docs (how this is supposed to work):

https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/registering-and-queuing-a-customtimerdpc-routine

It includes a nice diagram that illustrates the usage of timer and DPC objects
for a CustomTimerDpc routine.

Created snapshot of the page via Internet Archive in case it gets "lost".

$ wine --version
wine-5.9-107-g3104715700

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