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


Правило DrvAckIoStop (kmdf)

Правило DrvAckIoStop проверяет, что драйвер знает об ожидающих запросах, в то время как его очередь, управляемая питанием, отключается, а драйвер подтверждает, завершает или отменяет ожидающие запросы соответствующим образом. В случае самоуправляемых запросов ввода-вывода драйвер также должен правильно обрабатывать эти запросы из своей функции EvtDeviceSelfManagedIoSuspend . Драйвер, который не может обработать эти запросы во время выключения питания, вызовет 0x9F проверки ошибок: DRIVER_POWER_STATE_FAILURE.

В некоторых случаях может быть целесообразно отключить это предупреждение. Если драйвер не удерживает запросы или не перенаправляет их другим драйверам, а драйвер выполняет запросы непосредственно в обработчиках очереди, можно использовать функцию __analysis_assume для подавления предупреждения. Дополнительные сведения см. в разделах Использование функции _analysis_assume для подавления ложных дефектов и Практическое руководство. Указание дополнительных сведений о коде с помощью __analysis_assume.

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

Проверка ошибок, обнаруженных с помощью этого правила: 0x9F проверки ошибок: DRIVER_POWER_STATE_FAILURE

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

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

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

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

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

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

WdfDeviceInitSetPnpPowerEventCallbacksWdfFdoInitSetFilterWdfIoQueueCreate