Поделиться через


Общие сведения о целевых объектах ввода-вывода

В разделах этого раздела описывается, как драйвер Windows Driver Frameworks (WDF) может пересылать запрос ввода-вывода или создавать и отправлять новый запрос другому драйверу, называемому целевым объектом ввода-вывода.

Когда драйвер функции, драйвер фильтра или минипорт-драйвер получает запрос ввода-вывода, драйвер может самостоятельно обработать запрос или может потребоваться помощь других драйверов. Если драйверу нужна помощь, он может пересылать запрос другому водителю или создать один или несколько новых запросов и отправить их другому водителю.

В Kernel-Mode Driver Framework целевой объект ввода-вывода представляет объект устройства, который является целевым объектом запроса ввода-вывода. Функция, фильтр или минипорт-драйвер могут использовать целевой объект ввода-вывода для отправки запросов ввода-вывода другому драйверу. Эти драйверы часто отправляют запросы ввода-вывода в следующий нижний драйвер в стеке драйверов. Таким образом, каждая функция на основе фреймворка, фильтр и мини-драйвер имеют локальный целевой объект ввода-вывода для каждого устройства, который является драйвером, стоящим уровнем ниже устройства.

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

Каждый целевой объект ввода-вывода представлен целевым объектом ввода-вывода. Каждый целевой объект ввода-вывода — это в первую очередь очередь, которая управляет доставкой запроса в целевой объект устройства. Когда драйвер отправляет запрос в целевой объект ввода-вывода, платформа сохраняет запрос в очереди, пока он не сможет передать запрос целевому объекту устройства.

Платформа поддерживает как общие целевые объекты ввода-вывода , так и специализированные целевые объекты ввода-вывода:

  • Общие целевые объекты ввода-вывода можно использовать всеми драйверами функций, фильтров и минипортов, но они не поддерживают специальные форматы данных, относящиеся к устройству.

  • Специализированные целевые объекты ввода-вывода позволяют драйверам функций, фильтров и минипортов легко отправлять запросы ввода-вывода, требующие специального форматирования данных для конкретных целевых объектов. В настоящее время платформа обеспечивает поддержку следующих специализированных целевых объектов ввода-вывода:

Если платформа предоставляет специализированные целевые объекты ввода-вывода, поддерживающие формат данных устройства, драйвер должен использовать специализированные целевые объекты ввода-вывода. В противном случае драйвер должен использовать общие целевые объекты ввода-вывода.