x
This website is using cookies. We use cookies to ensure that we give you the best experience on our website. More info. That's Fine
HPC:Factor Logo 
 
Latest Forum Activity

Windows CE version number confusion

1 2
Karpour Page Icon Posted 2022-02-16 12:52 PM
#
Avatar image of Karpour
Subscribers
H/PC Philosopher

Posts:
441
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
 Top of the page
C:Amie Page Icon Posted 2022-02-16 1:32 PM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
18,068
Location:
United Kingdom
Status:
Windows Mobile 5.0 called itself "OS 5.1" and Windows Mobile 6 called itself "CE OS 5.2"
 Top of the page
Karpour Page Icon Posted 2022-02-16 1:49 PM
#
Avatar image of Karpour
Subscribers
H/PC Philosopher

Posts:
441
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.
 Top of the page
C:Amie Page Icon Posted 2022-02-16 4:08 PM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
18,068
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?
 Top of the page
Karpour Page Icon Posted 2022-02-16 10:38 PM
#
Avatar image of Karpour
Subscribers
H/PC Philosopher

Posts:
441
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.
 Top of the page
CE Geek Page Icon Posted 2022-02-17 2:20 AM
#
Avatar image of CE Geek
Global Moderator
H/PC Oracle

Posts:
12,676
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.
 Top of the page
C:Amie Page Icon Posted 2022-02-17 7:29 AM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
18,068
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.
 Top of the page
Karpour Page Icon Posted 2022-02-17 11:06 AM
#
Avatar image of Karpour
Subscribers
H/PC Philosopher

Posts:
441
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?
 Top of the page
C:Amie Page Icon Posted 2022-02-17 11:25 AM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
18,068
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/
 Top of the page
Karpour Page Icon Posted 2022-02-17 2:31 PM
#
Avatar image of Karpour
Subscribers
H/PC Philosopher

Posts:
441
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

 Top of the page
C:Amie Page Icon Posted 2022-02-17 2:52 PM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
18,068
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!
 Top of the page
Karpour Page Icon Posted 2022-02-17 5:10 PM
#
Avatar image of Karpour
Subscribers
H/PC Philosopher

Posts:
441
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.
 Top of the page
CE Geek Page Icon Posted 2022-02-18 7:45 AM
#
Avatar image of CE Geek
Global Moderator
H/PC Oracle

Posts:
12,676
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.
 Top of the page
C:Amie Page Icon Posted 2022-02-18 8:06 AM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
18,068
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.
 Top of the page
Karpour Page Icon Posted 2022-02-18 10:08 AM
#
Avatar image of Karpour
Subscribers
H/PC Philosopher

Posts:
441
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
 Top of the page
1 2
Jump to forum:
Seconds to generate: 0.218 - Cached queries : 72 - Executed queries : 9