Can't programms like cmd.exe not just preset some of the variables in the
structure
before sending it to reactos ?
Ge van Geldorp wrote:
After reading a question on the forum, I decided to
find out exactly what
is
keeping Visual Basic programs from running and see if
it's easy to fix. It
turns out that about the first thing that the VB runtime (msvbvm60.dll)
does
is check the version number of the OS. At the moment
we return:
dwMajorVersion = 4
dwMinorVersion = 0
dwBuildNumber = 0
dwPlatformId = 2
szCSDVersion = "ReactOS 0.2.5-CVS (Build 20041216)"
wServicePackMajor = 6
wServicePackMinor = 0
wSuiteMask = 0
wProductType = 0
The VB runtime wants at least NT4/SP3. The checks that currently fail are
dwBuildNumber (needs at least 1381) and the check for the service pack. It
expects the szCSDVersion field to be "Service Pack x" and extracts the
service pack number from that. (Good thing btw that there are not more
than
10 service packs for NT4...).
Anyway, dwBuildNumber will have to be increased to 1381, that's no
problem.
But the szCSDVersion is currently the only way for
usermode programs to
get
the ReactOS version. I know it's used by e.g.
cmd.exe to display the
version
number.
So, I don't think we have much choice, szCSDVersion will have to be set to
"Service Pack 6". Question is how to make the ReactOS version string
available. I've been thinking about adding it after the "Service Pack 6"
string (so the sp6 string is terminated with a nul byte, following the nul
byte is the ReactOS version string). Another option would be to store it
in
the registry, but that would mean that it could get
out of sync with the
version info in the kernel.
So, I'd like to store it as second string in szCSDVersion. Any objections
to
that?
Gé van Geldorp.