物理ディスクのシリアル番号を取得するために、C++でWMIを使用しています。
Windows 7 64ビットでは、シリアル番号が記載された文字列を取得します。
同じアプリケーションをWindowsXP64ビットマシンで実行すると、各文字の値が逆になっている16進文字列が表示されます。
これまでに3つの異なる動作に気づきました。
- Windows764ビット文字列を期待どおりの正しい順序で
- Windows XP 64ビット(マシン1)16進文字列、逆バイト順序
- Windows XP 64ビット(マシン2)逆バイト順の文字列
私はwbemtest.exeを使用し、これらの結果が自分のコードではなくWMIからのものであることを確認しました。
DeviceIOControlを使用してSMART情報を取得すると、常にシリアル番号がバイト順序が逆の16進文字列として取得されます。
これは予想される動作であり、これをどのように処理しますか?