http://bugs.winehq.org/show_bug.cgi?id=25994
Anastasius Focht focht@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@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@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/proces...
--- 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