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


Правило ReqNotCanceledLocal (kmdf)

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

Если запрос, помеченный WdfRequestMarkCancelable как отменяемый , завершен (путем вызова метода WdfRequestComplete, WdfRequestCompleteWithInformation или WdfRequestCompleteWithPriorityBoost), необходимо вызвать WdfRequestUnmarkCancelable до завершения запроса ввода-вывода. Запрос может быть выполнен, если метод WdfRequestUnmarkCancelable не возвращает состояние, равное STATUS_CANCELLED.

По умолчанию для запроса используются функции обратного вызова очереди ввода-вывода : EvtIoDefault, EvtIoRead, EvtIoWrite, EvtIoDeviceControl, EvtIoInternalDeviceControl.

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

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

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

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

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

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

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

WdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestMarkCancelableWdfRequestMarkCancelableExWdfRequestUnmarkCancelable