質問内容
wmic diskdrive get SerialNumber
コマンドによる結果と
C++にて「GetVolumeInformation」を実行した結果が異なります。
GetVolumeInformationで同じ値を取得できないでしょうか?
前提
wmicにてシリアルを取得する方法とは別に
シリアルを取得したいと考えています。
GetVolumeInformation以外でも可能であれば、
別の方法をご享受したいです。
該当のソースコード
C++
1#include <iostream>2#include <stdio.h>3#include <string.h>4#include <windows.h>5 6int main()7{8 TCHAR szRoot[16] = TEXT("E:\\");9 TCHAR szVolume[256];10 TCHAR szSystem[256];11 DWORD dwSerial;12 DWORD dwLength;13 DWORD dwFlags;14 15 // ボリューム情報の取得16 GetVolumeInformation(szRoot,17 szVolume, sizeof(szVolume),18 &dwSerial, &dwLength, &dwFlags,19 szSystem, sizeof(szSystem));20 21 printf("シリアル:%x\n", dwSerial);22 printf("シリアル:%08x\n", dwSerial);23 printf("シリアル:%d\n", dwSerial);24}
補足情報(FW/ツールのバージョンなど)
VS2022 C++
Windows 10
CrystalDiskinfo 9.2.3で確認した所
HDDはWMICと同じ結果になりましたが、NVMEのSSDは
どれとも一致しないので少し?です。
またGetVolumeInformationで取得する際、D:とE:は同じドライブの分割ですが
異なるシリアルナンバーを返します。
0 コメント