unknown
2009-04-26 06:43:13 UTC
I'm attempting to find a useful, reliable test for the actual CPU design
architecture that will work on XP and 2003 systems as well as Vista/2008/Win
7 (which means Win32_Processor's Architecture property isn't usable - it
doesn't give the correct answer for older XP versions).
Let me define the general problem I'm trying to solve, since it should
explain why I don't want to use, say, Family from the same class. I'm trying
to point admins in the right direction for quick automated checks of the
systems they support as we get more 64-bit OS installations (and demo it
with WSH and PowerShell). From this perspective, we want to identify the
underlying _hardware_ architecture as either x86 or ia64 or amd64. (I'm
using amd64 as Microsoft does - it includes EMT64).
The problem with using Family is that although I _could_ map documented CPUs
to a particular architecture, the list is always slightly obsolete - and any
tool would then have no way to categorize new numbers returned by Family. I
don't mind if I need to correlate several distinct values to get the correct
answer, but it is important that I do so for all three general architectures
when they are running XP or newer, and I need to do so correctly even for
32-bit Windows directly running on x86-64 CPUs.
Does anyone know of a way to do this that should remain accurate with future
amd64/Itanium CPUs?
If there's no direct way to do it, I know of a possible approach to try.
However, it depends on an assumption that I need confirmed. Is it correct
that the first Itanium CPUs (the ones with hardware IA32 emulation) could
NOT run 32-bit Windows natively? If there's never a real case where a system
could run 32-bit Windows and be an Itanium CPU, then I can work around the
edge of the problem by using other clues that indicate the CPU is 64-bit.
architecture that will work on XP and 2003 systems as well as Vista/2008/Win
7 (which means Win32_Processor's Architecture property isn't usable - it
doesn't give the correct answer for older XP versions).
Let me define the general problem I'm trying to solve, since it should
explain why I don't want to use, say, Family from the same class. I'm trying
to point admins in the right direction for quick automated checks of the
systems they support as we get more 64-bit OS installations (and demo it
with WSH and PowerShell). From this perspective, we want to identify the
underlying _hardware_ architecture as either x86 or ia64 or amd64. (I'm
using amd64 as Microsoft does - it includes EMT64).
The problem with using Family is that although I _could_ map documented CPUs
to a particular architecture, the list is always slightly obsolete - and any
tool would then have no way to categorize new numbers returned by Family. I
don't mind if I need to correlate several distinct values to get the correct
answer, but it is important that I do so for all three general architectures
when they are running XP or newer, and I need to do so correctly even for
32-bit Windows directly running on x86-64 CPUs.
Does anyone know of a way to do this that should remain accurate with future
amd64/Itanium CPUs?
If there's no direct way to do it, I know of a possible approach to try.
However, it depends on an assumption that I need confirmed. Is it correct
that the first Itanium CPUs (the ones with hardware IA32 emulation) could
NOT run 32-bit Windows natively? If there's never a real case where a system
could run 32-bit Windows and be an Itanium CPU, then I can work around the
edge of the problem by using other clues that indicate the CPU is 64-bit.