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


Набор правил 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 с параметром /проверка. Пример:

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

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