3.Внутреннее устройство Windows (гл. 8-11)   ::   Руссинович Марк

Страница: 166 из 255

Для идентификации разделов и создания объектов «устройство», представляющих эти разделы, драйвер класса дисков в Windows 2000 использует функцию IoReadPartitionTable диспетчера ввода-вывода, а в Windows XP и Windows Server 2003 — функцию IoReadParitition-TableEx. Драйвер класса дисков вызывает одну из этих функций для каждого диска, представленного минипорт-драйвером драйверу класса на ранних стадиях загрузки системы. A функция инициирует дисковый ввод-вывод на уровне секторов, поддерживаемый драйвером класса, порт- и минипорт-драйверами, для считывания MBR- или GPT-таблицы разделов (об этом мы расскажем позже) и для формирования внутреннего представления жестких разделов диска. Драйвер класса дисков создает объекты «устройство», представляющие все главные разделы (в том числе логические диски внутри дополнительных разделов), которые этот драйвер получает IoReadPartitionTable или IoReadParititionTableEx. Вот пример имени объекта раздела:

\Device\Harddisk0\DP(1)0x7e000-0x7ff50c00+2

Это имя идентифицирует первый раздел первого диска системы. Два первых шестнадцатеричных числа (0x7e000 и 0x7ff50c00) определяют начало и длину раздела, а последнее число — внутренний идентификатор, назначенный драйвером класса.

Для совместимости с приложениями, использующими правила именования, принятые в Windows NT 4, драйвер класса дисков формирует для имен в формате Windows NT 4 символьные ссылки на объекты «устройство», созданные драйвером. Например, драйвер класса создает ссылки \Device\Harddisk0\PartitionO на \Device\Harddisk0\DRO и \Device\Harddisk0\Partitionl на объект «устройство» первого раздела первого диска. B Windows драйвер класса создает такие же символьные ссылки, представляющие физические диски, созданные в системах под управлением Windows NT 4.

|< Пред. 164 165 166 167 168 След. >|

Java книги

Контакты: [email protected]