A customer was looking to obtain processor information and found that the Windows Runtime RetailInfo
class claims to provide all sorts of information, including ProcessorDescription
. But when they try to read it, they found that the RetailInfo.Properties
was blank. What’s going on?
The RetailInfo
class is purely marketing information. The idea is that a store takes a floor sample and puts it into retail demo mode, specifying values for the various RetailInfo
properties. It then sets up the system on the sales floor in attract mode. The attract mode program can use the information to promote the system. “Get this 〈model〉 computer, with 〈amount〉 of RAM for only 〈price〉! Ask any sales associate for more information.”
Since this is marketing, there is no requirement that the information provided by the sales department in any way resembles reality.
Programs can query whether the system is running in Retail Demo mode and tailor their behavior accordingly. For example, a productivity app or game should turn off in-app paid upgrades. a painting app could start with a half-painted picture instead of a blank canvas. A program that requires you create an account in order to use it to configure matching hardware could transform itself into an advertisement for that hardware.
If the system is not in retail demo mode, then the IsDemoModeEnabled
property is false
, and the Properties
are empty.
Okay, but back to the original question. If you want to know what processor the system has, you can start by calling GetÂNativeÂSystemÂInfo
to determine the architecture, and then you can call the IsÂProcessorÂFeatureÂPresent
function to see which features are supported by the current processor. You can also use the __cpuid
intrinsic to extract CPU manufacturer details.
0 comments