Why is there no useful information in the RetailInfo class?

Raymond Chen

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.


Discussion is closed.

Feedback usabilla icon