Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Операционная система представляет устройства в виде объектов устройства. Один или несколько объектов устройства связаны с каждым устройством. Объекты устройств служат целью всех операций на устройстве.
Драйверы в режиме ядра должны создавать по крайней мере один объект устройства для каждого устройства со следующими исключениями:
Минидрайверы, которые имеют связанный класс драйвера или портовый драйвер, не обязаны создавать собственные объекты устройства. Драйвер класса или драйвер порта создаёт объекты устройства и отправляет операции в минидрайвер.
Драйверы, которые являются частью подсистем, относящихся к типу устройства, например NDIS минипорта, имеют свои объекты устройства, созданные подсистемой.
Ознакомьтесь с документацией по конкретному типу устройства, чтобы определить, создает ли драйвер собственные объекты устройств.
Некоторые объекты устройств не представляют физических устройств. Драйвер только для программного обеспечения, который обрабатывает запросы ввода-вывода, но не передает эти запросы оборудованию, по-прежнему должен создать объект устройства для представления цели своих операций.
Дополнительные сведения о том, как драйвер может создавать объекты устройств, см. в статье "Создание объекта устройства".
Устройства обычно представлены несколькими объектами устройств, по одному для каждого драйвера в стеке драйверов, обрабатывающим запросы ввода-вывода для устройства. Объекты для устройства организованы в стек устройств. Всякий раз, когда операция выполняется на устройстве, система передает структуру данных IRP драйверу для верхнего объекта устройства в стеке устройств. Каждый драйвер либо обрабатывает IRP, либо передает его драйверу, связанному с объектом нижестоящего устройства в стеке устройств. Дополнительные сведения о стеках устройств см. в примере стека устройств WDM. Дополнительные сведения об IRP см. в разделе "Обработка irPs".
Объекты устройств представлены DEVICE_OBJECT структурами, управляемыми диспетчером объектов. Диспетчер объектов предоставляет те же возможности для объектов устройств, что и для других системных объектов. В частности, объект устройства можно назвать, а именованный объект устройства может иметь маркеры, открытые на нем. Дополнительные сведения об именованных объектах устройства см. в разделе "Именованные объекты устройства".
Система предоставляет выделенное хранилище для каждого объекта устройства, называемого расширением устройства, которое драйвер может использовать для хранилища для конкретного устройства. Расширение устройства создается и освобождается системой вместе с объектом устройства. Дополнительные сведения см. в расширениях устройств.
На следующем рисунке показана связь между объектами устройства и диспетчером ввода-вывода.
На рисунке показаны члены структуры DEVICE_OBJECT, которые представляют интерес для разработчика драйверов. Дополнительные сведения об этих элементах см. в статье "Создание объекта устройства", инициализация объекта устройства и свойств объектов устройств.