Правило DrvAckIoStop (kmdf)
Правило DrvAckIoStop проверяет, что драйвер знает об ожидающих запросах, в то время как его очередь, управляемая питанием, отключается, а драйвер подтверждает, завершает или отменяет ожидающие запросы соответствующим образом. В случае самоуправляемых запросов ввода-вывода драйвер также должен правильно обрабатывать эти запросы из своей функции EvtDeviceSelfManagedIoSuspend . Драйвер, который не может обработать эти запросы во время выключения питания, вызовет 0x9F проверки ошибок: DRIVER_POWER_STATE_FAILURE.
В некоторых случаях может быть целесообразно отключить это предупреждение. Если драйвер не удерживает запросы или не перенаправляет их другим драйверам, а драйвер выполняет запросы непосредственно в обработчиках очереди, можно использовать функцию __analysis_assume для подавления предупреждения. Дополнительные сведения см. в разделах Использование функции _analysis_assume для подавления ложных дефектов и Практическое руководство. Указание дополнительных сведений о коде с помощью __analysis_assume.
Модель драйвера: KMDF
Проверка ошибок, обнаруженных с помощью этого правила: 0x9F проверки ошибок: DRIVER_POWER_STATE_FAILURE
Как тестировать
Во время компиляции |
---|
Запустите средство проверки статических драйверов и укажите правило DrvAckIoStop . Выполните следующие действия, чтобы выполнить анализ кода.
Дополнительные сведения см. в разделе Использование средства проверки статических драйверов для поиска дефектов в драйверах. |
Применяется к
WdfDeviceInitSetPnpPowerEventCallbacksWdfFdoInitSetFilterWdfIoQueueCreate