質問

I need to use unique computer id for the purpose of software licensing. I decided to use CPU Flags. On MSVC they are retrived with function __cpuid, and on gcc version 4.3 and up with the function __get_cpuid. I get an integer out of these functions which is sort of a bit array with the purpose to be used as unique ID.

What I'm not sure whether the CPU flags retrieved with the above functions can ever change? Can those flags be programmatically changed by the user? If not by regular application maybe through BIOS?

Thank you.

役に立ちましたか?

解決 2

OK after some testing I can confirm that the flags from the 2nd byte of Info Type 1 are changing. So I will stick with Stepping ID,Model,Family and Processor Type values only.

他のヒント

No, an end user cannot change them because each of the commands you listed is essentially a wrapper for an actual processor opcode cpuid that is provided in Intel (and Intel-clone) chips.

So this information is 'burned' into the silicon. No user can change it.

The following resources might be helpful:

1) Wikipedia's article on CPUID

2) Code guru article (2 pages) on accessing processor info using a call to CPUID

3) Table listing many processors by stepping, family, and model numbers

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top