Набор правил IRQL (Storport)

Используйте эти правила проверки, чтобы убедиться, что драйвер вызывает DDI на требуемом уровне IRQL.

Драйвер, который не соответствует правилам IRQL, может вызвать серьезные проблемы при работе, что может привести к состояниям взаимоблокировки или сбоям компьютера.

В этом разделе

Тема Описание

IrqlDispatch

Это правило проверяет, что следующие подпрограммы вызываются только в IRQL = DISPATCH_LEVEL.

IrqlKeReleaseSpinLock

Это правило проверяет, вызывается ли KeReleaseSpinLock только на уровне IRQL = DISPATCH_LEVEL. Также необходимо установить IRQL на предыдущий уровень IRQL. Обычно этот вызов предшествует вызову KeAcquireSpinLock.

SpChangeIrql

Это правило проверяет, возвращаются ли подпрограммы обратного вызова StorPort на том же уровне IRQL, на котором они вызываются.

SpIrql

Это правило проверяет, вызываются ли подпрограммы TdiRegisterPnPHandlers и TdiDeregisterPnPHandlers только в IRQL ниже DISPATCH_LEVEL. Однако если вызывается ExFreeToNPagedLookasideList , правило выполняется.

StorPortIrql

Правило StorPortIrql проверяет, вызываются ли подпрограммы StorPort на правильных уровнях IRQL.

Выбор набора правил Irql

  1. Выберите проект драйвера (.vcxProj) в Microsoft Visual Studio. В меню драйвера щелкните Запустить средство проверки статических драйверов....

  2. Перейдите на вкладку "Правила ". В разделе "Наборы правил" выберите Irql.

    Чтобы выбрать набор правил по умолчанию в окне командной строки разработчика Visual Studio, укажите Irql.sdv с параметром /check . Рассмотрим пример.

    msbuild /t:sdv /p:Inputs="/check:Irql.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

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