我正在使用带有 C++ 的 WMI 来获取物理磁盘序列号。
在 Windows 7 64bit 上,我得到一个带有序列号的字符串。
在 Windows XP 64 位机器上运行相同的应用程序时,我得到一个十六进制字符串,每个字符的值都颠倒了。
到目前为止,我注意到了 3 种不同的行为:
- Windows 7 64位字符串按预期正确顺序
- Windows XP 64bit(Machine 1) 十六进制字符串,反转字节顺序
- Windows XP 64bit(Machine 2) 反转字节顺序的字符串
我使用了 wbemtest.exe 并确认这些结果来自 WMI,而不是我自己的代码。
当我使用 DeviceIOControl 并获取 SMART 信息时,我总是将序列号作为具有反转字节顺序的十六进制字符串获取。
这是预期的行为吗?如何处理?