Главная страница
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.013 c
4-72579
[lamer]Barmaglot
2002-12-05 11:02
2003.01.23
Рекурсивный поиск на CD-ROM е


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


1-72383
Mentos
2003-01-13 13:31
2003.01.23
линк между RTF-файлом и Дельфийской формой


1-72306
Светик
2003-01-15 13:08
2003.01.23
А как сохранить данные не в СУБД!


3-72035
Ig0r
2002-12-27 18:09
2003.01.23
Тип поля таблицы