Реферат: Драйвер жесткого диска
БЛОК ║ ├───────────────────────────────────────╢
║ +10 │ Количество таблиц FAT ║ Байт
ПАРАМЕТРОВ ─╢ ├───────────────────────────────────────╢
║ +11 │ Количество элементов директория ║ Слово
BIOS ║ ├───────────────────────────────────────╢
║ +13 │ Количество логических секторов ║ Слово
║ ├───────────────────────────────────────╢
║ +15 │ Описатель носителя ║ Байт
║ ├───────────────────────────────────────╢
║ +16 │ Количество секторов в одной FAT ║ Слово
╙─ ├───────────────────────────────────────╢
+18 │ Количество секторов на дорожке ║ Слово
├───────────────────────────────────────╢
+1A │ Количество головок чтения/записи ║ Слово
├───────────────────────────────────────╢
+1C │ Количество скрытых секторов ║ Слово
╘═══════════════════════════════════════╝
Рисунок 6-7. Содержимое первых 30 байт блока начальной загрузки
Выполняя этот процесс, Вам следует помнить, что просто чтение диска не может гарантировать правильных результатов. Если устройство и драйвер поддерживают несколько форматов (например, с различными размерами сектора), то драйверу может потребоваться несколько попыток чтения с разными форматами для того, чтобы об-
наружить корректный формат. После того, как сформирован BPB и оп ределен формат данного диска драйвер, поддерживающий устройство со сменным носителем (имеющий атрибут OCRM), обязан получить идентификатор тома данного диска. Найти его можно, обратившись к корневому директорию.
Вкратце, последовательность обработки команды BUILDBPB следующая :
1. Драйвер должен прочитать блок начальной загрузки (обычно на-
ходящийся в первом логическом секторе диска - сектор #0) и
проверить его на наличие блока параметров BIOS. Если BPB об-
наружен, то переход к шагу 3, иначе переход к шагу 2.
2. Драйвер должен прочитать первый сектор FAT для того, чтобы
получить байт описателя носителя. Полагаясь на этот MDB,
драйвер должен сконструировать соответствующий BPB.
3. Если устройство поддерживает замену носителя (установлен бит