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

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

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

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

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

Flags_Irql

Правило Flags_Irql указывает, что KeGetCurrentIrql не должен вызываться в функциях обратного вызова с параметром флага уровня отправки, указывающим текущий IRQL.

Правильное использование флага уровня отправки поможет избежать ненужных попыток задать IRQL. Дополнительные сведения об использовании этого флага см. раздел Отслеживание IRQL диспетчера.

Irql_CallManager_Function

Правило Irql_CallManager_Function указывает, что функции NDIS для NDIS CallManager должны вызываться на правильных уровнях IRQL.

Irql_Connection_Function

Правило Irql_Connection_Function указывает, что функции подключения NDIS для драйверов протокола должны вызываться на правильных уровнях IRQL.

Irql_Filter_Driver_Function

Правило Irql_Filter_Driver_Function указывает, что функции NDIS для драйверов фильтров должны вызываться на правильных уровнях IRQL.

Irql_Gather_DMA_Function

Правило Irql_Gather_DMA_Function указывает, что функции NDIS точечной и сборной DMA должны вызываться на правильных уровнях IRQL.

Irql_IM_Function

Правило Irql_IM_Function указывает, что функции NDIS для промежуточных драйверов должны вызываться на правильных уровнях IRQL.

Irql_Interfaces_Function

Правило Irql_Interfaces_Function указывает, что функции сетевого интерфейса NDIS должны вызываться на правильных уровнях IRQL.

Irql_Interrupt_Function

Правило Irql_Interrupt_Function указывает, что функции NDIS для прерываний должны вызываться на правильных уровнях IRQL.

Irql_IrqlSetting_Function

Правило Irql_IrqlSetting_Function указывает, что макросы прерываний NDIS должны вызываться на правильных уровнях IRQL.

Irql_MCM_Function

Правило Irql_MCM_Function указывает, что функции NDIS MCM для драйверов должны вызываться на правильных уровнях IRQL.

Irql_MCO_Function

Правило Irql_MCO_Function указывает, что NDIS MCO DDIs для драйверов минипорта должны вызываться на правильных уровнях IRQL.

Irql_Miniport_Driver_Function

Правило Irql_Miniport_Driver_Function указывает, что функции NDIS для мини-портов должны вызываться на правильных уровнях IRQL.

Irql_Miscellaneous_Function

Правило Irql_Miscellaneous_Function указывает, что функции NDIS должны вызываться на правильных уровнях IRQL.

Irql_NetBuffer_Function

Правило Irql_NetBuffer_Function указывает, что функции, связанные с NET_BUFFER, должны вызываться на правильных уровнях IRQL.

Irql_OID_Function

Правило Irql_OID_Function указывает, что DDI запроса OID NDIS должны вызываться на корректных уровнях IRQL.

Irql_Protocol_Driver_Function

Правило Irql_Protocol_Driver_Function указывает, что функции NDIS для клиентов CoNDIS должны вызываться на правильных уровнях IRQL.

Irql_SendRcv_Function

Правило Irql_SendRcv_Function указывает, что функции отправки и получения драйверов NDIS должны вызываться на правильных уровнях IRQL.

Irql_StatusIndication_Function

Правило Irql_StatusIndication_Function указывает, что функции указания состояния NDIS для минипорта и драйверов фильтров должны вызываться на правильных уровнях IRQL.

Irql_Synch_Function

Правило Irql_Synch_Function указывает, что прерывания и синхронизация DDIs NDIS должны вызываться на правильных уровнях IRQL.

Irql_Timer_Function

Правило Irql_Timer_Function указывает, что функции службы таймера NDIS должны вызываться на правильных уровнях 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).