DeviceIoControl 関数を使用して、ハードディスク シリアルを取得しようとしています。そして、同じパラメータでそれを呼び出すと、出力バッファに異なる値が与えられます。
私はそれを
if ( DeviceIoControl (hPhysicalDriveIOCTL, IOCTL_STORAGE_QUERY_PROPERTY,
& query,
sizeof (query),
& buffer,
sizeof (buffer),
& cbBytesReturned, NULL) )
ここで、hPhysicalDriveIOCTL = CreateFile (TEXT(deviceName), 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);