XP compatibility ReggetvalueA

Ask your support questions in here

Moderator: Moderator Team

Post Reply
Roros1
Posts: 4
Joined: Mon Apr 24, 2017 2:32 pm

XP compatibility ReggetvalueA

Post by Roros1 »

Hi Reactors (stole the term from someone here, dunno if you all call yourselves that!).

I'm new to the forum :).

Trying out dlls on a minimal XP.
Tried a few Ros versions, now 0.4.4.
Running .exes.

Previous versions the testing is OK, but this time I get ReggetvalueA not found in Advapi32.dll.
Searching gives me that that function was introduced in Vista, and creates incompatibility with XP.



Thanks.
User avatar
EmuandCo
Developer
Posts: 4730
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: XP compatibility ReggetvalueA

Post by EmuandCo »

Yes, it's a Vista+ API and thus not found in XP or ReactOS. Unless you ... hack a bit and build it yourself.

Code: Select all

Index: dll/win32/advapi32/advapi32.spec
===================================================================
--- dll/win32/advapi32/advapi32.spec	(revision 74206)
+++ dll/win32/advapi32/advapi32.spec	(working copy)
@@ -682,3 +682,6 @@
 682 stub WmiSetSingleItemW
 683 stub Wow64Win32ApiEntry
 684 stdcall WriteEncryptedFileRaw(ptr ptr ptr)
+@ stdcall RegDeleteTreeA(long str) advapi32_vista.RegDeleteTreeA
+@ stdcall RegDeleteTreeW(long wstr) advapi32_vista.RegDeleteTreeW
+@ stdcall RegSetKeyValueW(long wstr wstr long ptr long) advapi32_vista.RegSetKeyValueW
\ No newline at end of file
Index: dll/win32/advapi32/CMakeLists.txt
===================================================================
--- dll/win32/advapi32/CMakeLists.txt	(revision 74206)
+++ dll/win32/advapi32/CMakeLists.txt	(working copy)
@@ -61,6 +61,6 @@
 set_module_type(advapi32 win32dll UNICODE ENTRYPOINT DllMain 12)
 target_link_libraries(advapi32 cryptlib wine ${PSEH_LIB})
 add_delay_importlibs(advapi32 secur32)
-add_importlibs(advapi32 rpcrt4 kernel32 ntdll)
+add_importlibs(advapi32 advapi32_vista rpcrt4 kernel32 ntdll)
 add_pch(advapi32 advapi32.h SOURCE)
 add_cd_file(TARGET advapi32 DESTINATION reactos/system32 FOR all)
Index: dll/win32/kernel32/CMakeLists.txt
===================================================================
--- dll/win32/kernel32/CMakeLists.txt	(revision 74206)
+++ dll/win32/kernel32/CMakeLists.txt	(working copy)
@@ -110,7 +110,7 @@
 ################# END  HACK #################
 
 target_link_libraries(kernel32 wine chkstk ${PSEH_LIB})
-add_importlibs(kernel32 ntdll)
+add_importlibs(kernel32 kernel32_vista ntdll)
 add_pch(kernel32 k32.h SOURCE)
 add_dependencies(kernel32 psdk errcodes asm)
 add_cd_file(TARGET kernel32 DESTINATION reactos/system32 FOR all)
Index: dll/win32/kernel32/kernel32.spec
===================================================================
--- dll/win32/kernel32/kernel32.spec	(revision 74206)
+++ dll/win32/kernel32/kernel32.spec	(working copy)
@@ -1000,3 +1000,6 @@
 ;@ stdcall -arch=x86_64 uaw_wcsicmp(wstr wstr)
 ;@ stdcall -arch=x86_64 uaw_wcslen(wstr)
 ;@ stdcall -arch=x86_64 uaw_wcsrchr(wstr long)
+@ stdcall InitOnceExecuteOnce(ptr ptr ptr ptr) kernel32_vista.InitOnceExecuteOnce
+@ stdcall GetFileInformationByHandleEx(long long ptr long) kernel32_vista.GetFileInformationByHandleEx
+@ stdcall -ret64 GetTickCount64() kernel32_vista.GetTickCount64
If your cat explodes due to this... not my problem ^^ This is no XP/2003 anymore due to this and might kill even more apps than it fixes. I made this for running OpenMW in ROS.
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

If my post/reply offends or insults you, be sure that you know what sarcasm is...
Roros1
Posts: 4
Joined: Mon Apr 24, 2017 2:32 pm

Re: XP compatibility ReggetvalueA

Post by Roros1 »

Posted before reading your comment:
Tracked down to Shell32.dll. Would be nice to have a version without the call. Will try Shell32.dll from 0.4.3 etc.


Thanks
-----------------
Ok thanks for the answer. I hope you're not asking me to code something! ;)
I don't code!
What is Openwm *mw (I can Google).

I thought the call was from Shell32.dll.

Thanks.
User avatar
EmuandCo
Developer
Posts: 4730
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: XP compatibility ReggetvalueA

Post by EmuandCo »

No clue what you are trying to do, this one is just what I did to get some stuff working. In your case it wont help you.
RegDeleteTreeA != RegGetValueA
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

If my post/reply offends or insults you, be sure that you know what sarcasm is...
Roros1
Posts: 4
Joined: Mon Apr 24, 2017 2:32 pm

Re: XP compatibility ReggetvalueA

Post by Roros1 »

ERRATUM!
Hehe!
Been testing too many hours! I think the "working" Shell32.dll WAS an MS one!
So, the following doesn't apply:
To confirm,
Older version (Ros 3.x) Shell32.dll, .exe works.
Livecd 0.44 Shell32.dll, RegGetValueA (and similar) could not be located in advapi32.dll.
Roros1
Posts: 4
Joined: Mon Apr 24, 2017 2:32 pm

Re: XP compatibility ReggetvalueA

Post by Roros1 »

Yup, too long hours testing gives mixups!
See prev post.
Will carry on anyway!

By the way well done Emuandco for the "patch"!

Later!
User avatar
EmuandCo
Developer
Posts: 4730
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: XP compatibility ReggetvalueA

Post by EmuandCo »

ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

If my post/reply offends or insults you, be sure that you know what sarcasm is...
Post Reply

Who is online

Users browsing this forum: No registered users and 18 guests