Wie erstelle ich eine Partition, ohne dass Windows einen Laufwerksbuchstaben zuweist?

Ich versuche, eine angehängte virtuelle Festplatte über die Windows-API zu initialisieren und zu partitionieren. Ich war erfolgreich mitDeviceIoControl () Zu diesem Zweck weist Windows der Partition jedoch automatisch einen Laufwerksbuchstaben zu, wenn ich das gewünschte Laufwerkslayout anwende, und zeigt ein nerviges "Möchten Sie formatieren?" Dialog.

Ich beabsichtige, die Formatierung und das Mounten dieser Partition später im Programm vorzunehmen, bin mir jedoch nicht sicher, wie ich dieses Verhalten beenden kann. Ich habe versucht, Einstellungen vorzunehmenRecognizedPartition auf FALSE, aber dies scheint keine Wirkung zu haben.

Relevanter Code:

<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>

Was kann ich tun, um die automatische Zuweisung von Laufwerksbuchstaben zu verhindern?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage