dencorso Posted December 26, 2010 Share Posted December 26, 2010 The fact that one cannot get the version info for any Linear Executable (a.k.a.: LE, which extensions may be .386, .VXD or .PDR) because, since LEs are not executable on the NT-family OSes, the system doesn't provide the usual Properties- -> Version tab for them, is a minor annoyance for those of us who multiboot Win 9x/ME with Win XP (or other NT-family OSes). I've just thrown together a crude, but effective, DOS application that solves this issue by getting the required info without recourse to the Windows API, and can be downloaded from this post. Bear in mind that the MS VS_VERSION_INFO structure has *four* version strings: a File Version and a Product Version as hexadecimal numbers, and a File Version and a Product Version as text strings, and that not necessarily do they contain the same info, so my little app lists all four of them. HTH. And thanks to LoneCrusader for providing the inspiration to finally get around to do it! vxdver051.7z Link to comment Share on other sites More sharing options...
LoneCrusader Posted December 26, 2010 Share Posted December 26, 2010 (edited) Aha! Thanks dencorso Edited December 26, 2010 by LoneCrusader Link to comment Share on other sites More sharing options...
dencorso Posted December 26, 2010 Author Share Posted December 26, 2010 Here's a new version! I found out that in about 2% of my test files it failed to find actually present version info, due to the presence of a duplicate string (probably a quirk of the linker used to create those .vxds)... that's now fixed, so please do download the new version, which is in post #1, replacing the original release. The new version also prints the filename, which is useful when using it inside FOR loops. Link to comment Share on other sites More sharing options...
Joseph_sw Posted December 27, 2010 Share Posted December 27, 2010 thanks, i also hate xp for deliberately ignoring version info for that format. Link to comment Share on other sites More sharing options...
dencorso Posted August 9, 2015 Author Share Posted August 9, 2015 It's been a long time already, since I've released VxDVer... I always wished to make it more complete, but never actually found the time to come around to it. Quite recently, I've found out an ancient MSKB document (viz. Q201685 aka KB201685), which provides sample code precisely for reading more fully the properties of a VxD file (usualy having the extensions .386, .VxD or .PDR). I compiled it, and it works, although it has a bug, which was first reported by Jordan Russell: Note: The code in this function is based on the code in the MSKB article Q201685. Known issue: This function fails if the version resource has a name (TVXDVersionResource.cName <> $FF). It's rare, but such VXDs do exist -- see Windows 98's MSGAME.VXD for example. Given that as of 2007 Windows 9x is mostly obsolete, I don't plan on fixing this. So, I decided to fix this bug, cause the program to give error messages and localization languages in plain English, not just as a code number, format a little better the program's output, and make available a compiled copy of it. As opposed to my VxDVer, this new program named VxDProps is not a plain DOS executable, but instead a Win 32 console applications, that should run equally well on 9x/ME and on NT-family OSes, at least from 2k on. It's compiled with VC++ 6.0. Problems, bugs, etc., please do let me know. The original version has been replaced by a new one, now available for download from Post #20. 1 Link to comment Share on other sites More sharing options...
bphlpt Posted August 10, 2015 Share Posted August 10, 2015 Please forgive me if I haven't kept up with this topic over the last 4 3/4 years, LOL, but how and why does one use this, I assume, nifty tool you created? I realize that it probably doesn't apply to me since I don't currently use any version of Win9x, but I read the "Q201685 - VxDs Version Info.pdf" and I think I get the reason that knowing the version of the files is useful, (if you are going to update, patch, or replace a file it is usually important to know the exact version of the file you are dealing with), but I still don't get how to use your tool. Sorry for being a noob. Cheers and Regards Link to comment Share on other sites More sharing options...
dencorso Posted August 10, 2015 Author Share Posted August 10, 2015 Supose one double-boots 9x/ME with XP or 7 or both. There's no way to find out version, language and all those familiar info from the Properties => Version tab for .VxDs, because NT-OSes don't know anything about .VxD (aka .386 or .PDR) files. NT-OSes don't read their version info structure because they don't even suspect it's there. So, in order to be able to check that info, to update or replace such files in 9x/ME, from NT-OSes, a special app is needed, and the only know such apps are those in this thread. My original one also runs in DOS, but shows just version info. The new one provides all the info from the Properties => Version tab, but can only run in a DOS box, because it's a Win32 console application. To see the new one work, a VxD file is needed. Having one such file at hand, the usage is: VxdProps <filename>.Cheers! Link to comment Share on other sites More sharing options...
Drugwash Posted August 10, 2015 Share Posted August 10, 2015 You forgot about Shutdown Patcher which can read VersionInfo from VXDs equally well. Ahem, almost equally well because I did stumble into that duplicate label issue and left it as is (since none of the nvcore drivers suffer from it). But with a little help from my friends I could fix it and maybe port the code to a standalone GUI application. B) Link to comment Share on other sites More sharing options...
rloew Posted August 10, 2015 Share Posted August 10, 2015 I wrote a DOS based one a couple of years ago to dump this information and/or change it.It comes in very handy when attempting to port Kernel Software from Windows 98 to Windows 95 as the VXD loader will reject VXDs with a newer DDK Version Number.Incidentally, neither VXDProps nor ShutdownPatcher display the DDK Version Number. Link to comment Share on other sites More sharing options...
Drugwash Posted August 11, 2015 Share Posted August 11, 2015 Another undocumented offset? The patcher is not meant as an in-depth analyser but the code that reads the VI from LE files can be ported over and enhanced.But first things first. Link to comment Share on other sites More sharing options...
rloew Posted August 11, 2015 Share Posted August 11, 2015 There are four that are rarely documented. I gave you the first two. Then there is a Device ID. And finally the DDK Version.The document included in VXDProps, that dencorso attached, references the WINNT.H Include file that does list these. No details though.Your Patcher doesn't need this but your planned Version Display Program might. Link to comment Share on other sites More sharing options...
dencorso Posted August 11, 2015 Author Share Posted August 11, 2015 Another undocumented offset? Well, not quite... Link to comment Share on other sites More sharing options...
Drugwash Posted August 11, 2015 Share Posted August 11, 2015 Thanks both for the tip, I'll grab that header for a read as soon as I get some rest and fix the issues with the patcher. Link to comment Share on other sites More sharing options...
jumper Posted August 13, 2015 Share Posted August 13, 2015 Both DumpLX and MiTec EXE Explorer display full vxd headers including the DDK version.See also: VXD files structure and disassembly - Windows 9x Member Projects - MSFN Forum for documentation links. Link to comment Share on other sites More sharing options...
dencorso Posted August 13, 2015 Author Share Posted August 13, 2015 True. But neither display the contents of the Properties => Version Tab, like VxDProps. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now