Текущий архив: 2003.01.23;
Скачать: CL | DM;
Вниз
Как не через fdisk, а програмно установить активный раздел на HDD Найти похожие ветки
← →
Ihor Osov'yak © (2002-11-10 22:01) [40]Милый вы мой, Денис, обратите внимание, что первоначальный мой постинг указывал на некоректность ответа 2 Song © (05.11.02 15:25). В части возможности/невозможности програмного доступа на физическом уровне.
Что касается конкретного ответа на ваш Вапрос, ок, запускаю секундомер и делаю поиск по msdn. По завершению поиска - буду постить продолжение. ОК?
← →
Ihor Osov'yak © (2002-11-10 22:21) [41]Даем волшебный набор слов
set partitions a disk DeviceIOControl
и по четвертой ссылке получаем
IOCTL_DISK_SET_DRIVE_LAYOUT
Using the IOCTL_DISK_SET_DRIVE_LAYOUT operation partitions a disk as specified by drive layout and partition information data.
To perform this operation, call the DeviceIoControl function with the parameters specified below.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to device
IOCTL_DISK_SET_DRIVE_LAYOUT, // dwIoControlCode operation
(LPVOID) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of input buffer
NULL, // lpOutBuffer; must be NULL
0, // nOutBufferSize; must be zero
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
Parameters
hDevice
[in] Handle to the disk drive to be partitioned. To obtain a device handle, call the CreateFile function.
dwIoControlCode
[in] Control code for the operation. This value identifies the specific operation to be performed and the type of device on which to perform it. Use IOCTL_DISK_SET_DRIVE_LAYOUT for this operation.
lpInBuffer
[in] Pointer to a buffer that contains drive layout and partition information data. The data exists as a DRIVE_LAYOUT_INFORMATION data structure and a series of PARTITION_INFORMATION data structures, one of the latter for each proposed partition on the drive.
Вам нужно обратить внимание на структуру
PARTITION_INFORMATION, в часности на члена BootIndicator
Если будут проблемы с переводом на раскаль - пишите сюда, может помогу.
Да, "Handle to the disk drive to be partitioned" - для открытия юзайте
CreateFile(pchar("\\.\PhysicalDrive"+IntToStr(drv)),
.....
где drv = 0 для первого харда, 1 - для второго итд
Под 98 - таких функций нет, либо они мне неизвестны. Нужно действительно писать конкретные байты по конкретному смещению -
см Opuhshii © (06.11.02 07:14)
Зы. Похожая инфо есть и в хелпе к делфи
Итого около 6 минут на поиск и 8 минут на написание ответа ....
Это я к тому, что учитесь работать, а не гвалт на конференции подымать.
← →
Ihor Osov'yak © (2002-11-10 22:26) [42]В дополнение
(в качесте приза) Под 98 - тот же int13, но либо из 16-битной длл, либо из vxd. Более подробную инфу - сорри. Считайте что из злобства (на самом деле, как говорит Подгорецкий - по религиозным убеждениям).
Да, еще альтернативный вариант - напишите елементарную програмульку на старом добром паскале и запускайте ее из-под доса ...
← →
Денис (2002-11-11 22:19) [43]>>Ihor Osov"yak
Огромное спасибо за волшебный набор слов и потраченные 8 мин!
Из них я понял, что активный раздел под fat32 лучше всего ставить на добром старом assembler-е!
Страницы: 1 2 вся ветка
Текущий архив: 2003.01.23;
Скачать: CL | DM;
Память: 0.54 MB
Время: 0.02 c