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


Правило BufAfterReqCompletedIoctl (kmdf)

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

В функции обратного вызова EvtIoDeviceControl драйвера буфер запросов, полученный путем вызова WdfRequestRetrieveInputBuffer, WdfRequestRetrieveOutputBuffer, WdfRequestRetrieveUnsafeUserInputBuffer или WdfRequestRetrieveUnsafeUserOutputBuffer не могут быть доступны после вызова WdfRequestComplete, WdfRequestCompleteWithInformation или WdfRequestCompleteWithPriorityBoost в запросе ввода-вывода.

Это правило учитывает следующие методы доступа к буферу:

Модель драйвера: KMDF

Как тестировать

Во время компиляции

Запустите средство проверки статических драйверов и укажите правило BufAfterReqCompletedIoctl .

Чтобы выполнить анализ кода, выполните следующие действия.
  1. Подготовьте код (используйте объявления типов ролей).
  2. Запустите средство проверки статических драйверов.
  3. Просмотр и анализ результатов.

Дополнительные сведения см. в статье Использование средства проверки статических драйверов для поиска дефектов в драйверах.

Применяется к

WdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBuffer

См. также раздел

BufAfterReqCompletedIoctlA