Dex[_4_]
December 14th 14, 06:41 AM
My host system is Win7-x64 ... I have two small .exe's, a 32bit and a 64bit,
each only ~2kb in size, that do nothing other than call kernel32!ExitProcess
with a specific return code returned to signify successful execution.
I've been testing with various values of Major/MinorOperatingSystemVersion
and Major/MinorSubsystemVersion.
WINDOWS 7-x64 (everything behaving as expected)
-------------
When I run the 64bit version on my Win7-x64 host it successfully executes
(and gives correct return code) for _everything_ -- it seems Win7 ignores
these version settings in the PE header of 64bit executables ???
Anyway when I run the 32bit version on my Win7-x64 host I get "correct"
expected behavior from CreateProcess. That is, if it fails CreateProcess
will return 0, and if it succeeds CreateProcess will return non-zero, and I
will then receive the correct return code every time.
WINDOWS 10-x64 Tech Preview (running inside VMWare 11)
--------------
In regards to the 64bit version it behaves the same as described above on my
Win7-x64 system.
HOWEVER, the 32bit version behaves ... a little odd.
I'll list these as "A.B C.D" where A=MajorOperatingSystemVersion .
B=MinorOperatingSystemVersion C=MajorSubsystemVersion .
D=MinorSubsystemVersion
Note however that it doesn't really seem to matter what the
OperatingSystemVersion values are,
but look what happens when it comes upon "6.3" and "6.4" as SubsystemVersion
values ...
Trying 0.0 6.0 ...OK, CreateProcess=1, GetLastError=0, ReturnCode=Valid
Trying 0.0 6.1 ...OK, CreateProcess=1, GetLastError=0, ReturnCode=Valid
Trying 0.0 6.2 ...OK, CreateProcess=1, GetLastError=0, ReturnCode=Valid
Trying 0.0 6.3 ...FAIL, CreateProcess=1, GetLastError=0, ReturnCode=INVALID
(0xC000007B)
Trying 0.0 6.4 ...FAIL, CreateProcess=1, GetLastError=0, ReturnCode=INVALID
(0xC000007B)
Trying 0.0 6.5 ...FAIL, CreateProcess=0, GetLastError=0, ReturnCode=<none>
Trying 0.0 6.6 ...FAIL, CreateProcess=0, GetLastError=0, ReturnCode=<none>
.... !?!?!?!?!???????
--- news://freenews.netfront.net/ - complaints: ---
each only ~2kb in size, that do nothing other than call kernel32!ExitProcess
with a specific return code returned to signify successful execution.
I've been testing with various values of Major/MinorOperatingSystemVersion
and Major/MinorSubsystemVersion.
WINDOWS 7-x64 (everything behaving as expected)
-------------
When I run the 64bit version on my Win7-x64 host it successfully executes
(and gives correct return code) for _everything_ -- it seems Win7 ignores
these version settings in the PE header of 64bit executables ???
Anyway when I run the 32bit version on my Win7-x64 host I get "correct"
expected behavior from CreateProcess. That is, if it fails CreateProcess
will return 0, and if it succeeds CreateProcess will return non-zero, and I
will then receive the correct return code every time.
WINDOWS 10-x64 Tech Preview (running inside VMWare 11)
--------------
In regards to the 64bit version it behaves the same as described above on my
Win7-x64 system.
HOWEVER, the 32bit version behaves ... a little odd.
I'll list these as "A.B C.D" where A=MajorOperatingSystemVersion .
B=MinorOperatingSystemVersion C=MajorSubsystemVersion .
D=MinorSubsystemVersion
Note however that it doesn't really seem to matter what the
OperatingSystemVersion values are,
but look what happens when it comes upon "6.3" and "6.4" as SubsystemVersion
values ...
Trying 0.0 6.0 ...OK, CreateProcess=1, GetLastError=0, ReturnCode=Valid
Trying 0.0 6.1 ...OK, CreateProcess=1, GetLastError=0, ReturnCode=Valid
Trying 0.0 6.2 ...OK, CreateProcess=1, GetLastError=0, ReturnCode=Valid
Trying 0.0 6.3 ...FAIL, CreateProcess=1, GetLastError=0, ReturnCode=INVALID
(0xC000007B)
Trying 0.0 6.4 ...FAIL, CreateProcess=1, GetLastError=0, ReturnCode=INVALID
(0xC000007B)
Trying 0.0 6.5 ...FAIL, CreateProcess=0, GetLastError=0, ReturnCode=<none>
Trying 0.0 6.6 ...FAIL, CreateProcess=0, GetLastError=0, ReturnCode=<none>
.... !?!?!?!?!???????
--- news://freenews.netfront.net/ - complaints: ---