Windows ディスクの管理スナップインを使用して、いくつかの仮想ハード ディスク (VHD) を作成、初期化、およびフォーマットしました。これらの VHD を手動で簡単にアタッチしてアクセスできますが、API を介した管理に問題があります。
仮想ディスクが接続された後、そのボリュームのドライブ文字を簡単に確認する方法が見つかりません。次のアプローチを見つけましたが、かなり複雑なようです。より良い方法はありますか?
これが私がこれまでに持っているものです...それほど多くはありません。
var
StorageType: TVirtualStorageType;
Path: UnicodeString;
Handle: THandle;
begin
StorageType.DeviceId := VIRTUAL_STORAGE_TYPE_DEVICE_VHD;
StorageType.VendorId := VIRTUAL_STORAGE_TYPE_VENDOR_MICROSOFT;
Path := 'C:\tmp\small-usb.vhd';
OpenVirtualDisk(@StorageType, PWideChar(Path), VIRTUAL_DISK_ACCESS_ALL, OPEN_VIRTUAL_DISK_FLAG_NONE, nil, @Handle);
AttachVirtualDisk(Handle, nil, ATTACH_VIRTUAL_DISK_FLAG_NONE, 0, nil, nil);
// volume is visible in windows explorer at this point but
// I don't know the drive letter
end