WMI Win32_PhysicalMedia SerialNumber 有时是十六进制,有时是相反的字节顺序

Zac*_*ker 5 c++ windows wmi 64-bit serial-number

我使用 WMI 和 C++ 来获取物理磁盘序列号。

在 Windows 7 64 位上,我得到一个带有序列号的字符串。

当在 Windows XP 64 位计算机上运行相同的应用程序时,我得到一个十六进制字符串,其中每个字符的值都相反。

到目前为止我注意到了 3 种不同的行为:

  1. Windows 7 64 位字符串按预期正确顺序排列
  2. Windows XP 64位(机器1) 十六进制字符串,反转字节顺序
  3. Windows XP 64位(机器2)反转字节顺序的字符串

我已经使用了 wbemtest.exe 并确认这些结果来自 WMI,而不是我自己的代码。

当我使用 DeviceIOControl 并获取 SMART 信息时,我总是以字节顺序相反的十六进制字符串形式获取序列号。

这是预期的行为吗?如何处理?