WineHQ
Bug Tracking Database – Bug 25994

 Bugzilla

 

Last modified: 2013-11-15 13:40:40 UTC  

Process Hacker 2.x needs ntdll.dll.NtCreateKeyedEvent

Bug 25994 - Process Hacker 2.x needs ntdll.dll.NtCreateKeyedEvent
Process Hacker 2.x needs ntdll.dll.NtCreateKeyedEvent
Status: CLOSED FIXED
AppDB: Show Apps affected by this bug
Product: Wine
Classification: Unclassified
Component: ntdll
1.3.13
x86 Linux
: P2 normal
: ---
Assigned To: Mr. Bugs
http://processhacker.sourceforge.net/...
: download, source
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2011-02-04 14:53 UTC by NSLW
Modified: 2013-11-15 13:40 UTC (History)
5 users (show)

See Also:
Regression SHA1:
Fixed by SHA1: dbf9d71ef80f0f689d4c0e6d06e4af69d3ea93d5
Distribution: ---
Staged patchset:


Attachments
Terminal output on Wine 1.3.13 (7.70 KB, text/plain)
2011-02-04 14:53 UTC, NSLW
Details
Stub (1.31 KB, patch)
2011-02-05 02:04 UTC, EG Galano
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description NSLW 2011-02-04 14:53:22 UTC
Created attachment 33136 [details]
Terminal output on Wine 1.3.13

Steps to reproduce:
1) remove ~/.wine
2) winetricks gecko
3) install Process Hacker
4) copy winsta.dll to system32
5) wine ProcessHacker.exe

Behaviour:
There is Wine's error.

Expected behaviour:
There should be no error.
Comment 1 EG Galano 2011-02-05 02:04:49 UTC
Created attachment 33143 [details]
Stub

Does this help?
Comment 2 NSLW 2011-02-05 05:39:27 UTC
(In reply to comment #1)
> Does this help?
Application is downloadable so you can check it out yourself.
Comment 3 EG Galano 2011-02-05 05:42:21 UTC
(In reply to comment #2)
> (In reply to comment #1)
> > Does this help?
> Application is downloadable so you can check it out yourself.

It exits silently for me, but no longer crashes.
Comment 5 Anastasius Focht 2013-03-09 16:18:53 UTC
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
Comment 6 peter 2013-04-13 14:54:18 UTC
PDF-XChange Editor 3.0 also needs ntdll.dll.NtCreateKeyedEvent

This is a substantial upgrade to PDF-XChange Viewer 2.5 which runs adequately under Wine. As far as I know, these packages are significant improvements over any PDF editor software available for Linux.


Forum:

http://www.tracker-software.com/forum3/viewtopic.php?f=62&t=17208


Download:

http://www.tracker-software.com/product/downloads
Comment 8 Alexandre Julliard 2013-08-30 13:06:19 UTC
Closing bugs fixed in 1.7.1.
Comment 9 Alexandre Julliard 2013-11-15 13:40:40 UTC
Removing 1.6.x milestone from bugs included in 1.6.1.


Privacy Policy
If you have a privacy inquiry regarding this site, please write to [email protected]

Hosted By CodeWeavers