次の方法で共有


IRQL の規則セット (NDIS)

これらのルールを使用して、ドライバーが必要な IRQL で DDI 呼び出しを行っているかを検証します。

IRQL ルールに従わないドライバーは、操作中に重大な問題を引き起こす可能性があり、デッドロック状態やコンピューターのクラッシュにつながる可能性があります。

このセクションの内容

裁判官 説明

Flags_Irql

Flags_Irql ルールは、現在の IRQL を示すディスパッチ レベル フラグ パラメーターを持つコールバック関数内で KeGetCurrentIrql を呼び出してはならないことを指定します。

ディスパッチ レベル フラグを正しく使用すると、IRQL を設定する不必要な試行を回避するのに役立ちます。 このフラグの使用方法の詳細については、「ディスパッチ IRQL トラッキング」を参照してください。

Irql_CallManager_Function

Irql_CallManager_Function ルールでは、NDIS CallManager の NDIS 関数を正しい 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 ルールでは、中間 (IM) ドライバーの 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_MCM_Function ルールでは、ドライバーの NDIS MCM 関数を正しい 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 に関連する関数を NET_BUFFER IRQL レベルで呼び出す必要があります。

Irql_OID_Function

Irql_OID_Function ルールでは、NDIS OID 要求 DDI を正しい IRQL レベルで呼び出す必要があります。

Irql_Protocol_Driver_Function

Irql_Protocol_Driver_Function ルールでは、CoNDIS の NDIS 関数を正しい IRQL レベルで呼び出す必要があります。

Irql_SendRcv_Function

Irql_SendRcv_Function ルールでは、NDIS ドライバーの送受信関数を正しい IRQL レベルで呼び出す必要があります。

Irql_StatusIndication_Function

Irql_StatusIndication_Function ルールでは、ミニポート ドライバーとフィルター ドライバーの NDIS 状態表示関数を正しい IRQL レベルで呼び出す必要があります。

Irql_Synch_Function

Irql_Synch_Function ルールでは、NDIS 割り込みおよび同期 DDIS を正しい IRQL レベルで呼び出す必要があります。

Irql_Timer_Function

Irql_Timer_Function ルールでは、NDIS タイマー サービス関数を正しい IRQL レベルで呼び出す必要があります。

Irql ルール セットを選択するには

  1. Microsoft Visual Studio でドライバー プロジェクト (.vcxProj) を選択します。 [ドライバー] メニューから [静的ドライバー検証ツールの起動...] をクリックします。

  2. [ルール] タブをクリックします。[ルール セット] で、[Irql] を選択します。

    Visual Studio の開発者コマンド プロンプト ウィンドウから既定のルール セットを選択するには、/check オプションで Irql.sdv を指定します。 次に例を示します。

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

    詳細については、「静的ドライバー検証ツールを使用して、ドライバーの欠陥を検出する」と「静的ドライバー検証ツールコマンド (MSBuild)」を参照してください。