Архитектура современных операционных систем

151 9. процедуры регистрации ошибок, при возникновении неожиданных ситуаций (например, когда на диске появляется поврежденный блок), уведомляют о них диспетчер ввода-вывода. Последний записывает эту информацию в файл журнала ошибок. Объекты драйвер и устройство Когда поток открывает описатель файлового объекта, диспетчер ввода- вывода, исходя из имени этого объекта, должен определить, к какому драйверу (или драйверам) нужно обратиться для обработки запроса. Более того, диспет- чер ввода-вывода должен знать, где найти эту информацию, когда в следующий раз поток вновь воспользуется тем же описателем файла. Для этого предназна- чены следующие объекты (рис. 4.28.):  Объект драйвер, представляющий отдельный драйвер в системе. Имен- но от этого объекта диспетчер ввода-вывода получает адрес процедуры распределения (точки входа) драйвера.  Объект устройство, представляющий физическое или логическое устройство в системе и описывающий его характеристики, например границы выравнивания буферов и адреса очередей для приема IRP, по- ступающих на это устройство. Диспетчер ввода-вывода создает объект драйвер при загрузке в систему соответствующего драйвера и вызывает его процедуру инициализации, которая записывает в атрибуты объекта точки входа этого драйвера. После загрузки драйвер может создавать объекты устройство для пред- ставления устройств. Диспетчер ввода-вывода выгружает драйвер после удале- ния его последнего объекта «устройство», когда ссылок на устройство больше нет. Создавая объект устройство, драйвер может присвоить ему имя. Тогда этот объект помещается в пространство имен диспетчера объектов. Драйвер может определить имя этого объекта явно или позволить диспетчеру ввода-вывода сгенерировать его. По соглашению объекты устройство помещаются в каталог

RkJQdWJsaXNoZXIy MTY0OTYy