GetVolumeNameForVolumeMountPointで、ボリュームマウントポイントからボリューム名を取得できる。
GetVolumeNameForVolumeMountPointW 関数 (fileapi.h) - Win32 apps | Microsoft Learn
ドライブレターからボリューム名を取得 - わびさびサンプルソース
ボリュームマウントポイントなんだが、基本的にはドライブレターでいいのだが、デバイスパスでも取得できる。
GVNFVMP.cppで、
デバイスパスは、末尾に"\"を追加しないと失敗するので注意。
XP対応してるのにSDKインクルード追加しないと関数が見つかりません。
(なんでだろ・・・。)
Libも追加。
赤いのがメインのCドライブ、青いのがUSBHDD。
どちらも、ドライブレターから取得しても、デバイスパスから取得しても、同じ。
ただ、Google Driveとかは、片方にしか出てこないな。
これで、ドライブレターとボリューム名とデバイスパスは1対1対1の関係とわかった。
つまり、ドライブレターからボリューム名、またはその逆が導ける。
Sample/winapi/GetVolumeNameForVolumeMountPoint/GVNFVMP/src/GVNFVMP at master · bg1bgst333/Sample · GitHub