Windows API を使用して、接続された仮想ハード ディスクを初期化し、パーティション分割しようとしています。私はDeviceIoControl()を使用してこれを行うことに成功しましたが、目的のドライブ レイアウトを適用するたびに、Windows は自動的にドライブ文字をパーティションに割り当て、煩わしい「フォーマットしますか?」というポップアップを表示します。ダイアログ。
私の意図は、プログラムの後半でこのパーティションのフォーマットとマウントを処理することですが、この動作を停止する方法がわかりません。RecognizedPartition
FALSE に設定してみましたが、これは効果がないようです。
関連コード:
Layout.PartitionStyle = PARTITION_STYLE_MBR;
Layout.PartitionCount = 4;
Layout.Mbr.Signature = MY_DISK_MBR_SIGNATURE;
Layout.PartitionEntry[0].PartitionStyle = PARTITION_STYLE_MBR;
Layout.PartitionEntry[0].PartitionNumber = 1;
Layout.PartitionEntry[0].StartingOffset.QuadPart = MY_DISK_OFFSET;
Layout.PartitionEntry[0].PartitionLength.QuadPart =
(Geom.DiskSize.QuadPart - MY_DISK_OFFSET);
Layout.PartitionEntry[0].Mbr.PartitionType = PARTITION_IFS;
Layout.PartitionEntry[0].Mbr.BootIndicator = FALSE;
Layout.PartitionEntry[0].Mbr.RecognizedPartition = FALSE;
Layout.PartitionEntry[0].Mbr.HiddenSectors =
(MY_DISK_OFFSET / Geom.Geometry.BytesPerSector);
for (int i = 0; i < 4; i++)
{
Layout.PartitionEntry[i].RewritePartition = TRUE;
}
if (!DeviceIoControl(hDisk, IOCTL_DISK_SET_DRIVE_LAYOUT_EX,
Layout, dwLayoutSz, NULL, 0, &dwReturn, NULL))
{
// Handle error
}
DeviceIoControl(hDisk, IOCTL_DISK_UPDATE_PROPERTIES,
NULL, 0, NULL, 0, &dwReturn, NULL);
ドライブ文字の自動割り当てを防ぐにはどうすればよいですか?