58 Глава 3
|
0 |
Используются не 2 стороны |
1 |
1 |
На дорожке 8 секторов |
|
0 |
На дорожке не 8 секторов |
2 |
1 |
Съемный носитель информации |
|
0 |
Несъемный носитель информации |
Назначение остальных полей ВРВ будет пояснено дальше. Сразу за ВРВ (начиная с байта с номером 25) в загрузочном секторе располагается следующая структура данных:
type
Add_BPB_Type = record
TrkSecs: Word; {Количество секторов на дорожке}
HeadCnt: Word; {Количество головок)
HidnSec: Word {Количество спрятанных секторов}
end; {Ad.d_BPB__Type}
Поле HidnSec содержит общее количество «спрятанных» секторов, т.е. секторов, не относящихся к логической структуре диска (см. ниже). Начиная с версии 4.0 в ДОС вошли средства, поддерживающие жесткие диски большого размера (больше 32 Мбайт). Поэтому для версий 4.х и выше структура данных, располагающихся за ВРВ, такова:
type
Add_BPB_4_Type = record
TrkSecs : Word; {"Количество секторов на дорожке}
HeadCnt : Word; {Количество головок}
HidnSecLo: Word {Младшее слово количества спрятанных секторов}
HidnSecHi: Word {Старшее слово}
TotSecs : Longint {Полное количество секторов на диске) end; {Add._BPB_4_Type}
Признаком того, что используется расширенный блок ВРВ, является значение 41 (символ «)») в 39—м по счету байте загрузочного сектора.
Физический диск может быть разбит на несколько логических разделов, каждый из которых имеет свою логическую структуру. С точки зрения пользователя, каждый раздел выступает как самостоятельный диск и называется логическим диском. Разбивка физического диска на ряд логических устройств осуществляется утилитой FDisk операционной системы или подобными ей несистемными средствами (ADM, Disk Manager и т.п.). Если диск разбит на разделы, в конце загрузочного сектора выделяется 64—байтное поле описателей разделов (по 16 байт на каждый логический диск). Это поле начинается с байта с номером 447 (смещение $1ВЕ от начала сектора). Каждый описатель раздела, создаваемый утилитой FDisk, соответствует такой структуре данных:
type
Part_Type = record
BootF: Byte; {Флаг активности раздела} BegHd: Byte; {Начало раздела - номер головки}