IRQL-Regelsatz (NDIS)
Verwenden Sie diese Regeln, um zu überprüfen, ob Ihr Treiber DDI-Aufrufe am erforderlichen IRQL durchführt.
Ein Treiber, der die IRQL-Regeln nicht befolgt, kann während des Betriebs zu schwerwiegenden Problemen führen, die zu Deadlockbedingungen oder Computerabstürzen führen können.
In diesem Abschnitt
Thema | BESCHREIBUNG |
---|---|
Die Flags_Irql Regel gibt an, dass KeGetCurrentIrql nicht innerhalb von Rückruffunktionen aufgerufen werden darf, die über einen Flagparameter für die Versandebene verfügen, der die aktuelle IRQL angibt. Die richtige Verwendung des Flags für die Verteilerebene kann Ihnen helfen, unnötige Versuche zum Festlegen des IRQL zu vermeiden. Weitere Informationen zur Verwendung dieses Flags finden Sie unter Dispatch IRQL Tracking. |
|
Die Irql_CallManager_Function Regel gibt an, dass die NDIS-Funktionen für den NDIS-CallManager auf den richtigen IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_Connection_Function Regel gibt an, dass die NDIS-Verbindungsfunktionen für Protokolltreiber auf den richtigen IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_Filter_Driver_Function-Regel gibt an, dass die NDIS-Funktionen für Filtertreiber auf den korrekten IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_Gather_DMA_Function-Regel gibt an, dass die NDIS-Scatter/Gather-DMA-Funktionen auf den korrekten IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_IM_Function-Regel gibt an, dass die NDIS-Funktionen für Zwischentreiber (IM-Treiber) auf den korrekten IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_Interfaces_Function-Regel gibt an, dass die NDIS-Netzwerkschnittstellenfunktionen auf den korrekten IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_Interrupt_Function-Regel gibt an, dass die NDIS-Funktionen für Unterbrechungen auf den korrekten IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_IrqlSetting_Function-Regel gibt an, dass die NDIS-Unterbrechungsmakros auf den korrekten IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_MCM_Function-Regel gibt an, dass die NDIS-MCM-Funktionen für Treiber auf den richtigen IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_MCO_Function Regel gibt an, dass die NDIS-MCO-DDIs für Miniporttreiber auf den richtigen IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_Miniport_Driver_Function-Regel gibt an, dass die NDIS-Funktionen für Miniporttreiber auf den korrekten IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_Miscellaneous_Function-Regel gibt an, dass die NDIS-Funktionen auf den korrekten IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_NetBuffer_Function-Regel gibt an, dass die NET_BUFFER-bezogenen Funktionen auf den korrekten IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_OID_Function Regel gibt an, dass die NDIS-OID-Anforderungs-DDIs auf den richtigen IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_Protocol_Driver_Function-Regel gibt an, dass die NDIS-Funktionen für CoNDIS-Clients auf den korrekten IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_SendRcv_Function Regel gibt an, dass die Sende- und Empfangsfunktionen für NDIS-Treiber auf korrekten IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_StatusIndication_Function-Regel gibt an, dass die NDIS-Statusanzeigefunktionen für Miniport- und Filtertreiber auf den korrekten IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_Synch_Function-Regel gibt an, dass die NDIS-Unterbrechungs- und Synchronisierungs-DDIs auf den richtigen IRQL-Ebenen aufgerufen werden müssen. |
|
Die Irql_Timer_Function-Regel gibt an, dass die NDIS-Timerdienstfunktionen auf den korrekten IRQL-Ebenen aufgerufen werden müssen. |
So wählen Sie den Irql-Regelsatz aus
Wählen Sie Ihr Treiberprojekt (.vcxProj) in Microsoft Visual Studio aus. Klicken Sie im Menü Treiber auf Statische Treiberüberprüfung starten....
Klicken Sie auf die Registerkarte Regeln . Wählen Sie unter Regelsätzedie Option Irql aus.
Um den Standardregelsatz in einem Visual Studio-Eingabeaufforderungsfenster für Entwickler 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 Using Static Driver Verifier to Find Defects in Drivers and Static Driver Verifier commands (MSBuild).