Freigeben über


IRQL-Regelsatz (NDIS)

Verwenden Sie diese Regeln, um zu überprüfen, ob Ihr Treiber DDI-Anrufe mit dem erforderlichen IRQL tätigt.

Ein Treiber, der nicht den IRQL-Regeln folgt, kann während des Vorgangs zu schwerwiegenden Problemen führen, die zu Deadlockbedingungen oder Computerabstürzen führen können.

In diesem Abschnitt

Thema BESCHREIBUNG

Flags_Irql

Die Flags_Irql Regel gibt an, dass KeGetCurrentIrql nicht innerhalb von Rückruffunktionen aufgerufen werden darf, die über einen Flagparameter auf Verteilerebene verfügen, der die aktuelle IRQL angibt.

Die korrekte Verwendung des Dispatch-Level-Flags kann Ihnen helfen, unnötige Versuche zum Festlegen des IRQL-Werts zu vermeiden. Weitere Informationen zur Verwendung dieses Kennzeichens finden Sie unter Dispatch IRQL Tracking.

Irql_CallManager_Function

Die Irql_CallManager_Function Regel gibt an, dass die NDIS-Funktionen für den NDIS-CallManager auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_Connection_Function

Die Irql_Connection_Function Regel gibt an, dass die NDIS-Verbindungsfunktionen für Protokolltreiber auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_Filter_Driver_Function

Die Irql_Filter_Driver_Function Regel gibt an, dass die NDIS-Funktionen für Filtertreiber auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_Gather_DMA_Function

Die Regel Irql_Gather_DMA_Function gibt an, dass die NDIS-Scatter/Gather-DMA-Funktionen auf richtigen IRQL-Ebenen aufgerufen werden müssen.

Irql_IM_Function

Die Irql_IM_Function-Regel gibt an, dass die NDIS-Funktionen für IM-Treiber auf den korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_Interfaces_Function

Die Irql_Interfaces_Function Regel gibt an, dass die NDIS-Netzwerkschnittstellenfunktionen auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_Interrupt_Function

Die Irql_Interrupt_Function Regel gibt an, dass die NDIS-Funktionen für Unterbrechungen auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_IrqlSetting_Function

Die Irql_IrqlSetting_Function Regel gibt an, dass die NDIS-Unterbrechungsmakros auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_MCM_Function

Die Irql_MCM_Function Regel gibt an, dass die NDIS MCM-Funktionen für Treiber auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_MCO_Function

Die Irql_MCO_Function Regel gibt an, dass die NDIS MCO DDIs für Miniporttreiber auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_Miniport_Driver_Function

Die Irql_Miniport_Driver_Function Regel gibt an, dass die NDIS-Funktionen für Miniporttreiber auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_Miscellaneous_Function

Die Irql_Miscellaneous_Function Regel gibt an, dass die NDIS-Funktionen auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_NetBuffer_Function

Die Irql_NetBuffer_Function Regel gibt an, dass die NET_BUFFER-bezogenen Funktionen auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_OID_Function

Die Irql_OID_Function Regel gibt an, dass die NDIS OID-Anforderungs-DDIs auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_Protocol_Driver_Function

Die Irql_Protocol_Driver_Function Regel gibt an, dass die NDIS-Funktionen für CoNDIS-Clients auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_SendRcv_Function

Die Irql_SendRcv_Function Regel gibt an, dass die Sende- und Empfangsfunktionen für NDIS-Treiber auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_StatusIndication_Function

Die Irql_StatusIndication_Function Regel gibt an, dass die NDIS-Statusanzeigefunktionen für Miniport- und Filtertreiber auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_Synch_Function

Die Irql_Synch_Function Regel gibt an, dass die NDIS-Unterbrechungs- und Synchronisierungs-DDIs auf korrekten IRQL-Ebenen aufgerufen werden müssen.

Irql_Timer_Function

Die Irql_Timer_Function Regel gibt an, dass die NDIS-Zeitgeberdienstfunktionen auf korrekten IRQL-Ebenen aufgerufen werden müssen.

So wählen Sie den Irql-Regelsatz aus

  1. Wählen Sie Ihr Treiberprojekt (VCXProj) in Microsoft Visual Studio aus. Klicken Sie im Menü "Treiber" auf "Statische Treiberüberprüfung starten".

  2. Klicken Sie auf die Registerkarte "Regeln". Wählen Sie unter "Regelsätze" "Irql" aus.

    Um den Standardregelsatz aus einem Visual Studio-Entwickler-Eingabeaufforderungsfenster auszuwählen, geben Sie Irql.sdv mit der Option "/check " an. Beispiel:

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

    Weitere Informationen finden Sie unter Verwendung von Static Driver Verifier zur Fehlererkennung in Treibern und Befehle für Static Driver Verifier (MSBuild).