Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
1-72408
Fors
2003-01-13 18:57
2003.01.23
номер позиции


3-72112
rty$
2002-12-29 23:36
2003.01.23
Выбор формат БД


4-72599
Torn
2002-12-08 11:39
2003.01.23
Работа с диском


3-72031
Aleksandr
2003-01-04 17:18
2003.01.23
Как реструктурировать таблицу Парадокс, не открывая ее?


6-72435
Андрей_
2002-11-25 08:14
2003.01.23
Переслать файл при помощи сокетов.