疑惑?为什么在WinXP里读取CPUID序列号不唯一。
fj218 2003-10-07 09:50:25 就是下面这段程序,我在win98、win2K测试结果都唯一,但在一台Winxp下测试,返回的序列号有两种结果,也就是CPUID[2]的值,有时返回一种结果,有时运行又返回另一种结果,结果不唯一。我本来是想用4个CPUID的值作机器码的。请问大家遇到过这种现象吗?除了CPUID[2]外,其他三个值是不是也会在特定情况下出现这种不唯一的情况。我又该如何解决了?
function GetCPUID : TCPUID; assembler; register;
asm
PUSH EBX {Save affected register}
PUSH EDI
MOV EDI,EAX {@Resukt}
MOV EAX,1
DW $A20F {CPUID Command}
STOSD {CPUID[1]}
MOV EAX,EBX
STOSD {CPUID[2]}
MOV EAX,ECX
STOSD {CPUID[3]}
MOV EAX,EDX
STOSD {CPUID[4]}
POP EDI {Restore registers}
POP