Vista+ functions non visible to apps that needs them

All development related issues welcome

Moderator: Moderator Team

Post Reply
Julcar
Posts: 107
Joined: Thu Jul 31, 2008 8:19 pm

Vista+ functions non visible to apps that needs them

Post by Julcar » Thu Mar 28, 2019 3:12 am

ReactOS 0.4.12-dev (Build 20190326-0.4.12-dev-953-g1fe58c4) (Commit 1fe58c40580eefc202a085e1a06d1e2627d65644)

I was trying to install Skype 8.41.0.54 using Windows 8.1 compat mode.

The installation goes fine until near point before finish, the log says this:

Code: Select all

Entered debugger on first-chance exception (Exception Code: 0xc0000096) (Unknown/User defined exception)
kdb:> bt
Eip:
<00217d38>
Frames:
<Skype-8.41.0.54.tmp:16927>
<Skype-8.41.0.54.tmp:a00ae>
<Skype-8.41.0.54.tmp:93b36>
<Skype-8.41.0.54.tmp:fbdb9>
<Skype-8.41.0.54.tmp:e6694>
<Skype-8.41.0.54.tmp:e76c3>
<Skype-8.41.0.54.tmp:ca5ac>
<Skype-8.41.0.54.tmp:5ce58>
<0000000d>
Couldn't access memory at 0x0000B009!
kdb:> cont
fixme:(dll/win32/shell32/shlexec.cpp:1810) flags ignored: 0x00000100
(sdk/lib/rtl/actctx.c:2727) unknown element asmv3:application
(sdk/lib/rtl/actctx.c:2727) unknown element ms_compatibility:compatibility
(dll/ntdll/ldr/ldrinit.c:1567) LdrpInitializeProcessCompat: ProcessCompatVersion already set to 0x603
(dll/ntdll/ldr/ldrutils.c:1335) LDR: LdrpMapDll Relocating Image Name MSVCP140.dll (10000000-1006F000 -> 00260000)
(dll/ntdll/ldr/ldrutils.c:1374) Overlapping DLL: C:\Archivos de programa\Microsoft\Skype for Desktop\node.dll
(dll/ntdll/ldr/ldrutils.c:1335) LDR: LdrpMapDll Relocating Image Name VCRUNTIME140.dll (10000000-10013000 -> 002D0000)
(dll/ntdll/ldr/ldrutils.c:1374) Overlapping DLL: C:\Archivos de programa\Microsoft\Skype for Desktop\node.dll
(dll/ntdll/ldr/ldrpe.c:1036) Failed to snap KERNEL32.dll!InitializeConditionVariable
(dll/ntdll/ldr/ldrinit.c:2453) LDR: Process initialization failure for C:\Archivos de programa\Microsoft\Skype for Desktop\Skype.exe; NTSTATUS = c0000139
(win32ss/user/ntuser/cursoricon.c:815) err: Trying to delete global cursor!
[MSG ] [SE_ProcessDying] ()
fixme:(dll/win32/comctl32/toolbar.c:5624) [00020122] response 2007467472 not handled to NM_CUSTOMDRAW (CDDS_PREERASE)
fixme:(dll/win32/comctl32/toolbar.c:5661) [00020122] response 2007467472 not handled to NM_CUSTOMDRAW (CDDS_POSTERASE)
[MSG ] [SE_ProcessDying] ()
Seems that Skype needs InitializeConditionVariable in kernel32.dll but it is stub.

However in the code tree there are another reference to the same function, but for some reason Skype and other apps doesn't are looking at the right place.

Also, on Wine this was reported some time ago and implemented later.

Aside, we have a duplicated function InitializeCriticalSectionEx here and there.

Apologize me the extent of the post but I consider of some importance this, a lot of apps could run in ReactOS if some functions already implemented on wine kernel32 were imported in our code tree.

PurpleGurl
Posts: 1762
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: Vista+ functions non visible to apps that needs them

Post by PurpleGurl » Thu Mar 28, 2019 3:21 pm

I think this is being worked on. They want to make the compatibility engine to where it can selectively use the new APIs. Not sure of the details. I guess the goal would be to right click on a newer app, go to properties, and manually add in the compatibility section (that likely writes to the registry) that it require a newer version of Windows than 2003 Server. Then the right APIs are forwarded to the app.

justincase
Posts: 431
Joined: Sat Nov 15, 2008 4:13 pm

Re: Vista+ functions non visible to apps that needs them

Post by justincase » Fri Mar 29, 2019 7:31 pm

IIRC there was mention at some point of possibly detecting that an exe file was built for NT6+ and automatically adding the appropriate compatibility flag(s), but even if this gets implemented you should still be able to go into the compatibility tab of the file's properties window to customize it, in case it needs different compatibility flags than would get automatically enabled.
e.g. There could be an NT6 exe that actually needs NT6.1 compatibility mode to work right.
I reserve the right to ignore any portion of any post if I deem it not constructive or likely to cause the discussion to degenerate.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest