Удаление раздела
От: jakimushka  
Дата: 30.08.09 10:50
Оценка:
А как удалить раздел? пробую IOCTL_DISK_SET_DRIVE_LAYOUT_EX с обнулением всех разделов partition table. Ошибку не возвращает, но и не удаляет. Обнуляю таким вот образом:

        ptr->PartitionEntry[1].PartitionNumber = 0; 
        ptr->PartitionEntry[1].RewritePartition = 1; 
        ptr->PartitionEntry[1].StartingOffset.QuadPart = 0; 
        ptr->PartitionEntry[1].PartitionLength.QuadPart = 0; 
        ptr->PartitionEntry[1].Mbr.BootIndicator = 0; 
        ptr->PartitionEntry[1].Mbr.RecognizedPartition = 0; 
        ptr->PartitionEntry[1].Mbr.HiddenSectors = 0; 
        ptr->PartitionEntry[1].Mbr.PartitionType = 0;
        ptr->PartitionEntry[1].RewritePartition = 0;
        ptr->PartitionEntry[1].PartitionStyle = (PARTITION_STYLE)0;

Пробую WriteFile в первый сектор

          mbr.rt[1].ActFlag = 0;
          mbr.rt[1].Begin_Hd = 0;
          mbr.rt[1].Begin_SecTrk = 0;
          mbr.rt[1].SysCode = 0;
          mbr.rt[1].End_Hd = 0;
          mbr.rt[1].End_SecTrk = 0;
          mbr.rt[1].RelSec = 0;
          mbr.rt[1].Size = 0;

пишется, ошибки не возникает, раздел не удаляется, когда опять считываю то получаю старые значения.
Как правильно?

Да, и еще: есть у нас на жестком диске 3 раздела 1-й, 2-й, и 3-й занимают соответственно 1-ю, 2-ю и 3-ю ячейку в partition table. Пробуем удалить 2-й с помощью Disk Management. Удаляется, 3-й раздел записывается во вторую ячейку partition table. Когда пробую это сделать вручную так же ничего не получается. Как это сделать правильно?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.