|
Subscribers H/PC Philosopher Posts: | 431 |
Location: | Austria | Status: | |
| In order to classify software properly, I need to maintain a list of Windows CE version numbers. These numbers are referenced in the header of each .exe file.
Now currently I'm unsure about Windows CE 5.1 and 5.2 (also unsure whether it's 5.10 or 5.01 )
I saw these referenced as 5.1 being the core version of WM5 and 5.2 being the core version of WM6, but I have a hard time finding more information on it.
So if anyone can help out, that'd be great  |
|
|
|
Administrator H/PC Oracle Posts: | 17,720 |
Location: | United Kingdom | Status: | |
| Windows Mobile 5.0 called itself "OS 5.1" and Windows Mobile 6 called itself "CE OS 5.2" |
|
|
|
Subscribers H/PC Philosopher Posts: | 431 |
Location: | Austria | Status: | |
| Ah ok, the question remains whether this version number is actually used at a lower level. 5.1 and 5.2 weren't included in a list of Windows CE core versions I pulled from some Microsoft site. |
|
|
|
Administrator H/PC Oracle Posts: | 17,720 |
Location: | United Kingdom | Status: | |
| There is no CE 5.1 or 5.2, any more than there was a CE 2.01. They're phantom releases used to stop WinMo code running on CE proper. What does the pe header and CAB setup directive say for a proper WinMo 5 / 6 / 6.1 exe? |
|
|
|
Subscribers H/PC Philosopher Posts: | 431 |
Location: | Austria | Status: | |
| Ok so i investigated a bit and ran wincepeinfo on a WM5 PE, result:
wcepeinfo WM5_Files_Dumper.exe
WCEApp: true
WCEVersion: 5.01
WCEArch: ARM
That means that there are probably Versions 5.01 and 5.02 present in PE file headers, which respectively means the file was compiled for WM5 and WM6
I could not find any file that was exclusively compatible with WM6, but I assume they could exist. |
|
|
|
Global Moderator H/PC Oracle Posts: | 12,623 |
Location: | Southern California | Status: | |
| That's correct, Karpour. And, C:Amie's comment notwithstanding, I believe there were apps written for Palm-size PCs that identified their OS version in the PE header as 2.01. As C:Amie said, 2.01, 5.01, and 5.02 weren't separate OS versions since they weren't released as core versions, but knowing the exact version number in the PE header is important for compatibility purposes. No Windows Mobile 5 or 6 apps will work in core CE 5, and at that level hexediting the OS version identifier produces an error message if one then tries to open the hexedited app.  |
|
|
|
Administrator H/PC Oracle Posts: | 17,720 |
Location: | United Kingdom | Status: | |
| Exactly, they were the fastest way to inhibit cross platform compatibility and they just repeated what they did for the PsPC with WinMo.
"OS 5.1" and "CE OS 5.2" are what is shown on the OS about screens, suggesting that there is a slight difference between the PE header and WMI, but if you cast the values you'll get the same result, one that won't clash with CE core. |
|
|
|
Subscribers H/PC Philosopher Posts: | 431 |
Location: | Austria | Status: | |
| Very enlightening!
Currently my list of all versions is:
["1.0", "1.01", "2.0", "2.01", "2.10", "2.11", "2.12", "3.0", "4.0", "4.10", "4.20", "4.21", "5.0", "5.01", "5.02", "6.0", "7.0", "8.0"]
These are all in an array called core versions, which of course would be incorrect according to your info, I'll adjust it.
So the following aren't actually core versions:
2.01 (Core version is 2.0 )
5.01 (Core version is 5.0 )
5.02 (Core version is 5.0 )
I assume for 1.01 the Core release is therefore also 1.0?
Also one important thing, I never paid too much attention to build numbers, but both cab files and PE files have fields for minimum supported build number.
I found one source that claims that PocketPC2000 has a build number < 10.000 and PocketPC 2002 has one >= 10.000, which would be a good way to check for compatibility.
Would be good to also have build number ranges for all the other Windows CE versions, any clue where I could get ahold of those?  |
|
|
|
Administrator H/PC Oracle Posts: | 17,720 |
Location: | United Kingdom | Status: | |
| 1.01 I don't think identifies itself in PE. It's literally just the Japanese language GUI on the CE 1.0 kernel. To my awareness, the JP version of Visual Studio didn't use a different compiler.
2.10 is a core release but to my knowledge never made it to channel distribution - you do see it used in makecab definition files though as a catch-all wrapper for 2.11 / HPC/Pro / 2.12 support.
4.21 wasn't a core release either. From memory that was WM2003 SE?
Like I say, some of them are phantom releases. Microsoft playing with their own versioning for compatibility convenience sake.
The way that the HCL/SCL get around it is by identifying Core and then associatively identifying Platform beneath it. Sadly it is not an exact science because Microsoft kept changing the rules.
CE 2.0 -> H/PC 2.0, PsPC 1.0 (2.01 ), AutoPC 1.0 (2.01 )
CE 2.11 -> H/PC 3.0, PsPC 1.1, 1.2, WebPhone
CE 2.12 -> AutoPC 2.0
CE 3.0 -> H/PC 4.0, PPC 2.0, PPC 3.0
My History of Windows CE gives a broader breakdown for the earlier releases https://www.hpcfactor.com/support/windowsce/ |
|
|
|
Subscribers H/PC Philosopher Posts: | 431 |
Location: | Austria | Status: | |
| Jeez, I feel like any kind of classifying Windows CE versions is futile. I could at least attempt to do so if i could get my hands on build number ranges, but no luck so far. Maybe I'll try to reach out to some MS people
One thing, is it at least reasonable to categorize software into the following 4 device types:
HPC
PPC/PsPC
Smartphone (the edition for smaller-screen smartphones )
AutoPC
|
|
|
|
Administrator H/PC Oracle Posts: | 17,720 |
Location: | United Kingdom | Status: | |
| Build numbers are only relevant for platforms. OEM appliances are variable due to patch level and the risk of custom compilation / build processes.
*Technically* you forgot "core".
H/PC (Platform ) is not the same as Core release i.e. CE 2.11 and H/PC Pro are NOT the same, any more than CE 3.00 and HPC2000 are the same. Of course this actually means H/PC Pro and HPC2000 are the problem children, so shhhh. In theory, a core C++ console app that doesn't hook any winmain functions, should work on *.* (e.g. .net Framework )
After that you are really selecting which Microsoft shell you have: CE Explorer, PsPC Gryphon, PPC, Phone, Auto
Take the Dreamcast as an example. CE 2.12 appliance, custom non-Microsoft shell, came out of Platform Builder but still classes functionally as "core".
I say "technically" because functionally of course H/PC and CE Core are logically the same shell with additional core apps. It would be true however to say that theoretically not all H/PC apps can run on Core because of missing API's. Edge case though! |
|
|
|
Subscribers H/PC Philosopher Posts: | 431 |
Location: | Austria | Status: | |
| I think for purposes of software archiving, putting them into HPC, PsPC, PPC, Smartphone and Auto categories should be fine (though i don't have any autopc software). I guess those industrial touchscreen devices technically run Windows CE core then, but software written for those would also (usually) run fine in the HPC version using the same core release, unless that version is heavily modified?
Anyway, since 99% of the software I have here is made for consumer devices I think categorizing it like this would work.
I did some research on WebPhone, looks like this never really got a public release, all I could find were prototypes pretty much. |
|
|
|
Global Moderator H/PC Oracle Posts: | 12,623 |
Location: | Southern California | Status: | |
| In CE 1 the OS identifier in the PE header is actually 4.0, which as I understand corresponded to the current version of Windows NT at the time. As we all know, a lot of changes happened from CE 1 to CE 2.  |
|
|
|
Administrator H/PC Oracle Posts: | 17,720 |
Location: | United Kingdom | Status: | |
| That's right, it was parodying Windows 95's version number because they wanted developers to see it as functionally equivalent and art of the same ecosystem. |
|
|
|
Subscribers H/PC Philosopher Posts: | 431 |
Location: | Austria | Status: | |
| Yeah I'm aware of that, the wincepeinfo tool actually considers this!
If the architecture is MIPS or SH3 and the version number is 4.0, it will detect it as Windows CE 1.0 |
|
|