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


Запросы ввода-вывода устройства Type-Specific

Разделы комплекта драйверов Windows (WDK) содержат сведения о запросах ввода-вывода для конкретного типа устройства, обрабатываемых системными драйверами для наиболее распространенных типов устройств.

Новый драйвер режима ядра должен обрабатывать тот же набор запросов ввода-вывода, что и системный драйвер, если новый драйвер соответствует любому из следующих условий:

  • Новый драйвер заменяет системный драйвер для того же типа устройства.

  • Новый драйвер поддерживает еще одно устройство типа, уже присутствующего в системе.

  • Новый драйвер является промежуточным (фильтром) драйвером, расположенным между двумя драйверами, предоставляемыми системой.

Такой новый драйвер должен обрабатывать каждый запрос IRP_MJ_XXX, который обрабатывается системными драйверами. В большинстве случаев новый драйвер устройства также должен обрабатывать тот же набор кодов IOCTL_XXXX для запросов IRP_MJ_DEVICE_CONTROL , даже если новый драйвер должен эмулировать поведение соответствующего системного драйвера. В противном случае новый драйвер может разорвать приложения в пользовательском режиме, которые ожидают, что эти типы запросов будут учитываться.

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

Дополнительные сведения о различных типах драйверов и запросах, необходимых для поддержки, см. в следующих статьях:

Последовательные устройства и драйверы

System-Supplied параллельных драйверов

Драйверы хранилища

Архитектура HID

Запросы ввода-вывода для драйверов USB-клиента

Стек драйверов IEEE 1394

Доступ к памяти атрибутов устройства PCMCIA

Для всех других типов драйверов ознакомьтесь с документацией по соответствующему типу драйвера.