1

我有这个功能,可以为硬盘和 CPU 组合创建一个唯一编号。

    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,它会返回不同的数字。有什么想法,为什么?

谢谢你。

编辑:

好的,知道了(http://msdn.microsoft.com/en-us/library/aa364993(VS.85).aspx):

该函数返回格式化硬盘时操作系统分配的卷序列号。若要以编程方式获取制造商分配的硬盘序列号,请使用 Windows Management Instrumentation (WMI) Win32_PhysicalMedia 属性 SerialNumber。

在网上发布我的问题之前,我应该做更多的研究。很抱歉打扰你,让我们把这个留在这里,以防其他人需要它。

4

1 回答 1

0

也许是因为当您格式化硬盘时,它会为它生成一个新的唯一 UUID?(所以dwHddUnique会有所不同)

于 2010-05-20T08:26:43.263 回答