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

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

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

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

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

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

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

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

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

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

Системные параллельные драйверы

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

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

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

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

Access Attribute Memory устройства PCMCIA

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