Правило BufAfterReqCompletedIntIoctl (kmdf)

Правило BufAfterReqCompletedIntIoctl указывает, что после завершения запроса доступ к его буферу невозможен (только внутри функции обратного вызова EvtIoInternalDeviceControl ). Буфер извлекается путем вызова WdfRequestRetrieveOutputBuffer или WdfRequestRetrieveUnsafeUserOutputBuffer или WdfRequestRetrieveInputBuffer или WdfRequestRetrieveUnsafeUserInputBuffer.

В функции обратного вызова событий очереди ввода-вывода EvtIoInternalDeviceControl буфер запросов, полученный путем вызова WdfRequestRetrieveInputBuffer, WdfRequestRetrieveOutputBuffer, WdfRequestRetrieveUnsafeUserInputBuffer или WdfRequestRetrieveUnsafeUserOutputBuffer , не может быть доступен после завершения запроса. Запрос выполняется путем вызова WdfRequestComplete, WdfRequestCompleteWithInformation или WdfRequestComplete, WdfRequestCompleteWithPriorityBoost. Рассматриваются следующие возможные функции доступа к буферу: WdfRequestRetrieveOutputBuffer, WdfRequestRetrieveUnsafeUserOutputBuffer, WdfRequestRetrieveInputBuffer и WdfRequestRetrieveUnsafeUserInputBuffer.

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

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

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

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

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

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

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

WdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBuffer