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


Требуемые диспетчерские подпрограммы

Большинство драйверов должны обрабатывать следующие рутины Dispatch :

  • DispatchPnP

    IRP_MJ_PNP указывает запрос на распознавание устройств PnP, конфигурацию оборудования или выделение ресурсов. Такие запросы обычно отправляются драйверу устройства из диспетчера PnP или из тесно связанного драйвера более высокого уровня.

  • DispatchPower

    IRP_MJ_POWER указывает запрос, относящийся к состоянию питания устройства или системы. Такие запросы отправляются драйверу устройства диспетчером питания или драйвером более высокого уровня.

  • DispatchCreate

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

  • DispatchClose

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

  • DispatchRead

    IRP_MJ_READ указывает запрос ввода-вывода для передачи данных с базового физического устройства в систему.

  • DispatchWrite

    IRP_MJ_WRITE указывает запрос ввода-вывода для передачи данных из системы на базовое физическое устройство.

  • DispatchDeviceControl

    IRP_MJ_DEVICE_CONTROL указывает запрос, содержащий системный код элемента управления ввода-вывода для конкретного типа устройства, указывающий операцию конкретного типа устройства. Драйверы более высокого уровня передают эти IRP базовым драйверам устройств, которые обычно обрабатывают запрос путем доступа к устройству.

  • Диспетчеризация внутреннего управления устройством

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

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

  • DispatchSystemControl

    IRP_MJ_SYSTEM_CONTROL используется для указания запросов WMI для драйверов. Дополнительные сведения о WMI см. в статье Инструментарий управления Windows.

Подпрограммы отправки, которые должен предоставлять драйвер, зависят от типа и функциональности базового физического устройства. Сведения об основных кодах функций IRP, которые должны обрабатывать драйверы, см. в документации по конкретному типу устройства в комплекте драйверов Windows (WDK).