Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ОС.docx
Скачиваний:
45
Добавлен:
22.09.2019
Размер:
3.18 Mб
Скачать

61. Драйверы дисков, объекты дисков, иерархия драйверов в Windows. (Лекция 12)

Драйвер класса – функциональность, общая для всех устройств внешней памяти (disk.sys). Имеет стандартный интерфейс драйвера устройств Windows. Порт-драйвер – функциональность, общая для конкретной шины (scsiport.sys, pciidex.sys, atapi.sys).

Минипорт-драйвер – управление конкретными устройствами (aha154x.sys, atapi.sys, драйверы производителей).

Драйвер класса создает объекты «устройство» для диска в целом и его разделов. Объекты дисков DRx нумеруются с 0.

Объекты разделов имеют идентификатор: DP(<номер>)<начало раздела>-<длина>+<ID>. Ссылки PhysicalDrive и Partition0 – для прямой работы с диском.

Иерархия: Windows NT основана на архитектуре, в которой драйверы формируют многоуровневую иерархию. Преимущество такой архитектуры состоит в расширяемости архитектуры и возможности добавления новых драйверов на любой уровень иерархической структуры. Таким образом, благодаря поуровневому размещению драйверов можно реализовать различные функциональные возможности. В контексте выполняемого модуля Windows NT все драйверы имеют аналогичную структуру, поэтому функции драйвера используются схожим образом вне зависимости от его типа.

Н а рис. демонстрируется стек драйверов подсистемы хранения данных Windows NT. При вводе-выводе данных на физический диск, подключенный через интерфейс IDE или SCSI, необходимы уровни класса и порта, а также уровни файловой системы и управления томами. При вводе-выводе данных посредством накопителя на магнитной ленте уровни управления томами и файловой системы не требуются. В следующих подразделах рассматриваются драйверы шины, порта, класса, управления томами, файловой системы и фильтрации, представленные на рис. Драйвер шины Windows NT предоставляет функции шины другим драйверам. Драйверы шины необходимы для поддержки процедур перебора, которые вызываются диспетчером Plug and Play для перечисления устройств, подключенных к шине. Кроме того, от драйверов шины требуется предоставление кода обработки РпР, а также пакетов IRP для управления энергопитанием. Компания Microsoft предоставляет драйверы ввода-вывода для всех физических шин персональных компьютеров (например, SCSI, PCI, 1394, USB), хотя независимые поставщики оборудования также могут по мере необходимости предоставлять собственные драйверы шин. Драйвер шины создает объект физического устройства (physical device object – PDO) для каждого устройства, указанного процедурой перечисления устройств.

Драйвер порта реализует специфичные для устройства функциональные возможности и изолирует драйвер класса от влияния особенностей аппаратного обеспечения. Драйвер порта должен реализовать набор указанных функций для драйвера класса и может реализовать дополнительные возможности. Драйвер порта получает пакеты IRP и передает блоки запросов SCSI с встроенными блоками дескрипторов команд драйверу мини-порта, который динамически подключается к драйверу порта. Драйверы мини-портов не создают объектов устройств, а используют созданные драйверами порта. Драйверы дисков: В NetWare 4.11 была представлена NetWare Peripheral Architecture (NPA, периферийная архитектура NetWare), состоявшая из драйверов модульного типа, называемых модулями хост-контроллера (НАМ, host adapter modules) и модулей специализированного устройства (CDM, custom device modules). В процессе начальной загрузки ОС сначала инсталируется НАМ-драйвер хост-контроллера, установленного на сервере. Затем подгружаются индивидуальные CDM-драйверы для каждого из устройств, связанных с этим контроллером. Например, если установочная программа обнаруживает SCSI-контроллер в конфигурируемой системе, она подключает НАМ-драйвер, такой как Scsil54x.ham. Загрузка этого драйвера порождает автозагрузку главной NPA-программы: Nwpa.nlm. Как только установлен НАМ-драйвер, операционная система связывает с каждым из закрепленных за SCSI-контроллером устройств хранения информации свой CDM-драйвер, например, Scsihd.cdm для жесткого диска или Scsicd.cdm для дисковода CD-ROM.