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


Функциональность подпрограммы диспетчеризации

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

Большинство подпрограмм диспетчеризации обрабатывают входящие пакеты запросов ввода-вывода (IRP) следующим образом:

  1. Проверьте расположение стека ввода-вывода драйвера в IRP, чтобы определить, что делать, и проверка параметры, если таковые есть, на допустимость.

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

  2. Выполнить запрос и заполнить IRP, если это возможно; В противном случае передайте его для дальнейшей обработки драйверами более низкого уровня или другими подпрограммами драйверов устройств.

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

Дополнительные сведения о irPs см. в разделе Обработка irPs.