Hash 为什么该代码生成不同的数字?
我有这个函数,它为硬盘和CPU组合创建一个唯一的编号Hash 为什么该代码生成不同的数字?,hash,cpu,uniqueidentifier,hard-drive,Hash,Cpu,Uniqueidentifier,Hard Drive,我有这个函数,它为硬盘和CPU组合创建一个唯一的编号 GetVolumeInformation(drv, szNameBuffer, 256, &dwHddUnique, NULL, NULL, NULL, NULL); SYSTEM_INFO si; GetSystemInfo(&si); dwProcessorUnique = si.dwProcessorType + si.wProcessorArchitecture + si.wProc
GetVolumeInformation(drv, szNameBuffer, 256, &dwHddUnique, NULL, NULL, NULL, NULL);
SYSTEM_INFO si;
GetSystemInfo(&si);
dwProcessorUnique = si.dwProcessorType + si.wProcessorArchitecture + si.wProcessorRevision;
dwUniqueKey = dwProcessorUnique + dwHddUnique;
如果我格式化硬盘并安装新的Windows,它会返回不同的数字。有什么想法吗,为什么
多谢各位
编辑:
好的,明白了():
此函数用于返回卷
操作系统所使用的序列号
系统分配硬盘何时可用
格式化。通过编程获得
硬盘的序列号
制造商指定,使用窗口
管理工具(WMI)
Win32_物理媒体属性
序列号
在把我的问题发布到网上之前,我应该做更多的研究。很抱歉打扰您,让我们把这个放在这里,以防其他人需要。可能是因为当您格式化硬盘时,它会为它生成一个新的唯一UUID?(因此
dwHddUnique
会有所不同)显然是因为dwProcessorUnique
或dwHddUnique
发生了变化。请不要发布超出您的问题所需的代码。因此,请确定这两个更改中的哪一个,然后从上面的代码中删除另一个