[Bug 25994] Process Hacker 2.x needs ntdll.dll.NtCreateKeyedEvent

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Mar 9 16:18:53 CST 2013


http://bugs.winehq.org/show_bug.cgi?id=25994

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
                URL|http://storage2.dobreprogra |http://processhacker.source
                   |my.pl/narzedzia/processhack |forge.net/downloads.php
                   |er-2.11-setup(dobreprogramy |
                   |.pl).exe                    |
           Keywords|                            |source
                 CC|                            |focht at gmx.net
     Ever Confirmed|0                           |1
            Summary|Process Hacker:             |Process Hacker 2.x needs
                   |Unimplemented function      |ntdll.dll.NtCreateKeyedEven
                   |ntdll.dll.NtCreateKeyedEven |t
                   |t                           |

--- Comment #5 from Anastasius Focht <focht at gmx.net> 2013-03-09 16:18:53 CST ---
Hello folks,

confirming.
I'm encountering same problem while trying to run Process Hacker 2.30 for
Windows RT (ARM port).

http://forum.xda-developers.com/showthread.php?t=2179754

--- snip ---
...
0024:Call ntdll.NtQuerySystemInformation(00000000,004dbac0,0000002c,00000000)
ret=0040a88f
0024:Ret  ntdll.NtQuerySystemInformation() retval=00000000 ret=0040a88f
0024:trace:seh:raise_exception  info[0]=004c99e2
0024:trace:seh:raise_exception  info[1]=004c9284
wine: Call from 0x7bc998f8 to unimplemented function
ntdll.dll.NtCreateKeyedEvent, aborting
0024:trace:seh:call_stack_handlers calling handler at 0x7bcb7bb0 code=80000100
flags=1
0024:Call KERNEL32.UnhandledExceptionFilter(409ffbb4) ret=7bcb7c14
wine: Unimplemented function ntdll.dll.NtCreateKeyedEvent called at address
0x7bc998f8 (thread 0024), starting debugger...
0024:trace:seh:start_debugger Starting debugger "winedbg --auto 35 88"
0024:trace:seh:raise_exception  info[0]=00000000
0024:trace:seh:raise_exception  info[1]=454e4956
0024:trace:seh:raise_exception  Pc:454e4956 Sp:409ff044 Lr:52455345
Cpsr:600f0030 r0:409ff040 r1:409ff0d1 r2:0000 r3:813fe08
0024:trace:seh:raise_exception  r4:0000 r5:409ff0c0  r6:409ff044  r7:409ff064
r8:000a r9:0000 r10:40067000 Fp:409ff150 Ip:0045
0024:trace:seh:call_stack_handlers calling handler at 0x7bcb7bb0 code=c0000005
flags=0
0024:Call KERNEL32.UnhandledExceptionFilter(409fee98) ret=7bcb7c14 
--- snip ---

The sourceforge page has prebuilt binaries for x86 and x64.
Fortunately the app is open-source so you can see how the native API are used
(in queued locks wrapper).

Source:
http://downloads.sourceforge.net/project/processhacker/processhacker2/processhacker-2.30-src.zip

--- snip queuedlock.c ---
BOOLEAN PhQueuedLockInitialization(
    VOID
    )
{
    if (!NT_SUCCESS(NtCreateKeyedEvent(
        &PhQueuedLockKeyedEventHandle,
        KEYEDEVENT_ALL_ACCESS,
        NULL,
        0
        )))
        return FALSE;

    if ((ULONG)PhSystemBasicInformation.NumberOfProcessors > 1)
        PhQueuedLockSpinCount = 4000;
    else
        PhQueuedLockSpinCount = 0;

    return TRUE;
}
--- snip queuedlock.c ---

Additionally the wrapper needs the following native API:

ntdll.dll NtWaitForKeyedEvent
ntdll.dll NtReleaseKeyedEvent

With these API implemented the queued lock wrapper in Process Hacker should be
functional.

The first step, providing stubs for these API prevents crashes but will lead to
shutdown of the app.

$ du -sh processhacker-2.30-bin.zip 
2.3M    processhacker-2.30-bin.zip

$ sha1sum processhacker-2.30-bin.zip 
dd6c2f37425c6088d2803a0c343fe7081d0f0902  processhacker-2.30-bin.zip

$ wine --version
wine-1.5.25-149-g05cb367

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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