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


Правило BufAfterReqCompletedIntIoctlA (kmdf)

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

В функции обратного вызова событий очереди ввода-вывода EvtIoInternalDeviceControl буфер запроса, полученный путем вызова WdfRequestRetrieveInputBuffer или WdfRequestRetrieveOutputBuffer или WdfRequestRetrieveUnsafeUserInputBuffer или WdfRequestRetrieveUnsafeUserOutputBuffer , не может быть получен после WdfRequestComplete, WdfRequestCompleteWithInformation или WdfRequestCompleteWithPriorityBoost методы были вызваны в запросе. Рассматриваются следующие возможные функции доступа к буферу: RtlMoveMemory (с буфером в качестве 1-го и 2-го параметров), RtlZeroMemory, RtlCompareMemory, ZwReadFile, ZwWriteFile, WDF_MEMORY_DESCRIPTOR_INIT_BUFFER, WdfMemoryCreatePreallocated, WdfMemoryAssignBuffer, WdfMemoryCopyFromBuffer, WdfMemoryCopyToBuffer.

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

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

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

Запустите Static Driver Verifier и укажите правило BufAfterReqCompletedIntIoctlA .

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

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

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

WDF_MEMORY_DESCRIPTOR_INIT_BUFFERWdfMemoryAssignBufferWdfMemoryCopyFromBufferWdfMemoryCopyToBufferWdfMemoryCreatePreallocatedWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBufferRtlCompareMemoryRtlMoveMemoryRtlZeroMemoryZwReadFile