Tôi đang cố gắng khởi tạo và phân vùng ổ cứng ảo đính kèm thông qua API Windows. Tôi đã thành công khi sử dụng DeviceIoControl() để làm như vậy, tuy nhiên bất cứ khi nào tôi áp dụng bố cục ổ đĩa mong muốn, Windows sẽ tự động gán một ký tự ổ đĩa cho phân vùng và bật lên một phiền toái "Bạn có muốn định dạng không?" hộp thoại.Làm cách nào để tạo phân vùng mà Windows không gán ký tự ổ đĩa?
Mục đích của tôi là xử lý định dạng và gắn kết phân vùng này sau trong chương trình, nhưng tôi không chắc chắn cách dừng hành vi này. Tôi đã thử đặt RecognizedPartition
thành FALSE, nhưng điều này dường như không có hiệu lực.
đang liên quan:
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);
tôi có thể làm gì để ngăn chặn chuyển nhượng ký tự ổ đĩa tự động?
Tôi chưa thử, cụ thể vì không có đĩa để rảnh. Tuy nhiên, những gì về cố gắng để mở thiết bị ('hDisk') độc quyền và sau đó làm điều của bạn? Sau khi tất cả các truy cập độc quyền nên đảm bảo rằng người quản lý gắn kết không nên can thiệp vào công việc của bạn, không? (đó là 'dwShareMode == 0') +1 tất nhiên cho câu hỏi. – 0xC0000022L
Đã kiểm tra - không hoạt động – Isso