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


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

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

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

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

Раздел Описание

Flags_Irql

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

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

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 указывает, что функции DMA NDIS scatter/gather должны вызываться на правильных уровнях IRQL.

Irql_IM_Function

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

Irql_MCO_Function

Правило Irql_MCO_Function указывает, что DDIs MCO NDIS для драйверов мини-портов должны вызываться на правильных уровнях 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 указывает, что DDIs запроса NDIS OID должны вызываться на правильных уровнях 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 для драйверов miniport и фильтров должны вызываться на правильных уровнях 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 с параметром /проверка. Пример:

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

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