Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Драйвер должен инициировать завершение IRP при выполнении любого из следующих условий:
Драйвер определяет, что обработка IRP не может выполняться из-за недопустимых параметров или других условий.
Драйвер может обрабатывать запрошенную операцию ввода-вывода без передачи IRP по стеку драйверов вниз, и операция была завершена.
Этот IRP отменяется. (См. раздел Отмена IRPs.)
Если эти условия не выполнены, диспетчерская процедура драйвера должна передать IRP в следующий по уровню драйвер или обрабатывать запрос ввода-вывода. Если выполняется одно из условий, драйвер должен вызвать IoCompleteRequest.
Если драйвер завершает запрос, так как обработка не может выполняться, или если он завершает запрос, обрабатывая запрошенную операцию без фактического доступа к устройству, он обычно вызывает IoCompleteRequest из одной из его подпрограмм отправки. Дополнительные сведения см. в разделе Завершение выполнения irPs в подпрограммах отправки.
Если драйвер должен получить доступ к устройству для удовлетворения запроса, обычно он вызывает IoCompleteRequest из подпрограммы DpcForIsr. Эти подпрограммы подробно рассматриваются в прерывания обслуживания.