Правило BufAfterReqCompletedIntIoctl (kmdf)
Правило BufAfterReqCompletedIntIoctl указывает, что после завершения запроса доступ к его буферу невозможен (только внутри функции обратного вызова EvtIoInternalDeviceControl ). Буфер извлекается путем вызова WdfRequestRetrieveOutputBuffer или WdfRequestRetrieveUnsafeUserOutputBuffer или WdfRequestRetrieveInputBuffer или WdfRequestRetrieveUnsafeUserInputBuffer.
В функции обратного вызова событий очереди ввода-вывода EvtIoInternalDeviceControl буфер запросов, полученный путем вызова WdfRequestRetrieveInputBuffer, WdfRequestRetrieveOutputBuffer, WdfRequestRetrieveUnsafeUserInputBuffer или WdfRequestRetrieveUnsafeUserOutputBuffer , не может быть доступен после завершения запроса. Запрос выполняется путем вызова WdfRequestComplete, WdfRequestCompleteWithInformation или WdfRequestComplete, WdfRequestCompleteWithPriorityBoost. Рассматриваются следующие возможные функции доступа к буферу: WdfRequestRetrieveOutputBuffer, WdfRequestRetrieveUnsafeUserOutputBuffer, WdfRequestRetrieveInputBuffer и WdfRequestRetrieveUnsafeUserInputBuffer.
Модель драйвера: KMDF
Как тестировать
Во время компиляции |
---|
Запустите средство проверки статических драйверов и укажите правило BufAfterReqCompletedIntIoctl . Выполните следующие действия, чтобы выполнить анализ кода.
Дополнительные сведения см. в разделе Использование средства проверки статических драйверов для поиска дефектов в драйверах. |
Применяется к
WdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBuffer