Определение дисковой конфигурации в DOS
От: chy  
Дата: 27.07.06 18:40
Оценка:
Подскажите методику как определить наличие (и параметры) жестких дисков (USB, IEEE1394 и т.п. пока в стороне).
Я использую функции int13h биоса — с дисками IDE/SATA трудностей не возникло, так же без проблем вижу рейд-диски от IDE-контроллера (и зеркальные и страйп-диски), но вот трудности возникли с SATA-RAID — не определяются ни зеркало ни страйп (просто нету). Возможно будут проблемы и со SCSI-RAID, пока не столкнулся с этими контроллерами.
Из параметров мне достаточно увидеть размер диска (и модель, если это не рейд).
Обычный fdisk из win98 понимает диски на SATA-RAID, хотелось бы достичь этого результата.
Re: Определение дисковой конфигурации в DOS
От: DOOM Россия  
Дата: 28.07.06 03:17
Оценка:
Здравствуйте, chy, Вы писали:

chy>Подскажите методику как определить наличие (и параметры) жестких дисков (USB, IEEE1394 и т.п. пока в стороне).

chy>Я использую функции int13h биоса — с дисками IDE/SATA трудностей не возникло, так же без проблем вижу рейд-диски от IDE-контроллера (и зеркальные и страйп-диски), но вот трудности возникли с SATA-RAID — не определяются ни зеркало ни страйп (просто нету). Возможно будут проблемы и со SCSI-RAID, пока не столкнулся с этими контроллерами.
chy>Из параметров мне достаточно увидеть размер диска (и модель, если это не рейд).
chy>Обычный fdisk из win98 понимает диски на SATA-RAID, хотелось бы достичь этого результата.


Классический int13 здесь вряд ли поможет. Надо смотреть в сторону edd.
Re[2]: Определение дисковой конфигурации в DOS
От: chy  
Дата: 28.07.06 06:30
Оценка:
Здравствуйте, DOOM, Вы писали:

DOO>Классический int13 здесь вряд ли поможет. Надо смотреть в сторону edd.


Все правильно, я использую расширения int13, иначе с современными дисками невозможно работать (BIOS Enhanced Disk Drive Services-3 (EDD-3) отсюда). Однако я нашел только одну функцию, выдающую количество дисков в системе и она не относится к расширениям биос — ah=0x08 Get Drive Parameters: output dl=количество дисков.
Re[3]: Определение дисковой конфигурации в DOS
От: DOOM Россия  
Дата: 28.07.06 08:41
Оценка:
Здравствуйте, chy, Вы писали:

chy>Все правильно, я использую расширения int13, иначе с современными дисками невозможно работать (BIOS Enhanced Disk Drive Services-3 (EDD-3) отсюда). Однако я нашел только одну функцию, выдающую количество дисков в системе и она не относится к расширениям биос — ah=0x08 Get Drive Parameters: output dl=количество дисков.


Есть функция get parameters table, а также соглашение, что номера дисков 0x01,2,3.. — это съемные носители (но не все), 0x79,78... — это CD(DVD) и т.п., а 0x80,81... — это жесткие диски... Деление очень условное и поэтому предполагается, что программа переборов (255 вариантов это не так много) определит поддержку EDD (и соответственно всю информацию) при помощи функции Check Extensions Present (0x41). Если в результате вызова ошибка — то дибо такого диска в системе нет, либо он не поддерживает EDD.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.