Правило CompletionRoutineRegistered (wdm)

Правило CompletionRoutineRegistered указывает, что если подпрограмма диспетчеризации регистрирует подпрограмму IoCompletion с помощью IoSetCompletionRoutineEx, то после этого подпрограмма диспетчеризации должна вызывать IoCallDriver или PoCallDriver.

Подпрограмма IoSetCompletionRoutineEx выделяет память, которая остается выделенной до выполнения процедуры IoCompletion . Драйверы должны убедиться, что их подпрограмма IoCompletion выполняется путем вызова IoCallDriver или PoCallDriver; В противном случае ядро приведет к утечке памяти.

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

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

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

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

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

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

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

IoCallDriverIoSetCompletionRoutineIoSetCompletionRoutineExPoCallDriver