Как создать раздел без Windows, назначив букву диска?
Я пытаюсь инициализировать и разделить подключенный виртуальный жесткий диск через Windows API. Я успешно использовалDeviceIoControl () для этого, однако, всякий раз, когда я применяю желаемую разметку диска, Windows автоматически назначает букву диска разделу и выдает раздражающее сообщение & quot; Хотите отформатировать? & quot; Диалог.
Мое намерение состоит в том, чтобы обработать форматирование и монтирование этого раздела позже в программе, но я не уверен, как остановить это поведение. Я пробовал настройкуRecognizedPartition
ЛОЖЬ, но это, кажется, не имеет никакого эффекта.
Соответствующий код:
<code>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); </code>
Что я могу сделать, чтобы предотвратить автоматическое назначение букв дисков?