Запросы ввода-вывода Type-Specific устройств
В разделах комплекта драйверов Windows (WDK) для конкретных устройств содержатся сведения о запросах ввода-вывода для конкретных типов устройств, обрабатываемых системными драйверами для наиболее распространенных типов устройств.
Новый драйвер в режиме ядра должен обрабатывать тот же набор запросов ввода-вывода, что и системный драйвер, если новый драйвер соответствует любому из следующих условий:
Новый драйвер заменяет системный драйвер для устройства того же типа.
Новый драйвер поддерживает другое устройство типа уже в системе.
Новый драйвер является промежуточным (фильтром) драйвером, размещенным между двумя системными драйверами.
Такой новый драйвер должен обрабатывать каждый запрос IRP_MJ_XXX, который обрабатывают системные драйверы. В большинстве случаев новый драйвер устройства также должен обрабатывать тот же набор кодов IOCTL_XXX для IRP_MJ_DEVICE_CONTROL запросов, даже если новый драйвер должен эмулировать поведение соответствующего системного драйвера. В противном случае новый драйвер может нарушить пользовательский режим приложений, которые ожидают, что такие запросы будут учитываться.
Сведения о значениях NTSTATUS, которые драйверы могут задавать в блоке состояния ввода-вывода irp в качестве возвращаемого значения для конкретных запросов, см. в разделе Использование значений NTSTATUS. Сведения о значениях NTSTATUS, которые можно указать в пакете журнала ошибок, см. в разделе Ведение журнала ошибок. Используйте эти сведения для выбора соответствующих значений состояния, возвращаемых новыми драйверами для устройств аналогичных типов, или в качестве помощи в определении соответствующих значений состояния, возвращаемых драйвером для устройства нового типа.
Дополнительные сведения о различных типах драйверов и запросах, необходимых для поддержки, см. в следующих статьях:
Последовательные устройства и драйверы
Системные параллельные драйверы
Запросы ввода-вывода для драйверов USB-клиента
Access Attribute Memory устройства PCMCIA
Для всех остальных типов драйверов обратитесь к документации по соответствующему типу драйвера.