Old 16th May 2016, 13:04   #1
Anders
Moderator
 
Anders's Avatar
 
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,442
RtlVerifyVersionInfo probably helps because its internal call to RtlGetVersion is not hooked, this might change in the future of course because MS will discover that people are doing this. Our only hope is that it is a layering violation for NTDLL to call back up to the shim dll's so they might let this one slide, fingers crossed...

IntOp $PostCount $PostCount + 1
Anders is offline   Reply With Quote
Old 17th May 2016, 12:35   #2
th_mi
Member
 
Join Date: Sep 2005
Location: Sitting next to my desk
Posts: 56
Quote:
Originally Posted by Anders View Post
RtlVerifyVersionInfo probably helps because its internal call to RtlGetVersion is not hooked, this might change in the future of course because MS will discover that people are doing this.
No RtlGetVersion is not an "internal" function. It is a well documented part of the Windows Driver Support routines:
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

From what I remember this functions did not changed since eons. Currently I also do not expect this functions will be changed, Microsoft will surely not making the driver development more difficuilt. And since most drivers are capable to be used on more than one OS this functions are very essential for driver development.

This signature is currently on vacation!
th_mi is offline   Reply With Quote
Old 17th May 2016, 14:23   #3
Anders
Moderator
 
Anders's Avatar
 
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,442
Quote:
Originally Posted by th_mi View Post
No RtlGetVersion is not an "internal" function. It is a well documented part of the Windows Driver Support routines:
Where did I say that RtlGetVersion is an internal function? The RtlVerifyVersionInfo implementation calls RtlGetVersion to get the version info it uses when comparing the fields. Because this call happens inside ntdll it is not affected by the compatibility hooking that is forced on you when calling RtlGetVersion in your own code.

Quote:
Originally Posted by th_mi View Post
Microsoft will surely not making the driver development more difficuilt. And since most drivers are capable to be used on more than one OS this functions are very essential for driver development.
While some functions exist both in kernel and user mode they don't have to share the same implementation. It would be possible for ntdll!RtlGetVersion to lie without affecting drivers! RtlGetVersion is only documented for driver use, the user mode version is technically undocumented and could even go away in the future.

IntOp $PostCount $PostCount + 1
Anders is offline   Reply With Quote
Reply
Go Back   Winamp & Shoutcast Forums > Developer Center > NSIS Discussion

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump