Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Jede von NDIS aufgerufene Treiberfunktion wird bei einem systembestimmten IRQL (einer von PASSIVE_LEVEL < DISPATCH_LEVEL < DIRQL) ausgeführt. Die Initialisierungsfunktion eines Miniporttreibers, die Stoppfunktion, die Zurücksetzungsfunktion und die Herunterfahrenfunktion werden häufig bei PASSIVE_LEVEL ausgeführt, obwohl Zurücksetzungs- und Herunterfahrenfunktionen bei einem höheren IRQL aufgerufen werden können, wenn das System es erfordert. Interruptcode wird bei DIRQL ausgeführt, sodass ein NDIS-Zwischen- oder Protokolltreiber nie bei DIRQL ausgeführt wird. Alle anderen NDIS-Treiberfunktionen werden bei oder unter IRQL = DISPATCH_LEVEL ausgeführt.
Die IRQL, bei der eine Treiberfunktion ausgeführt wird, wirkt sich darauf aus, welche NDIS-Funktionen aufgerufen werden können. Bestimmte Funktionen können nur bei IRQL = PASSIVE_LEVEL aufgerufen werden. Andere können bei DISPATCH_LEVEL oder niedriger aufgerufen werden. Sie sollten jede NDIS-Funktion auf IRQL-Einschränkungen überprüfen.
Jede Treiberfunktion, die Ressourcen mit der Interrupt-Dienstroutine (ISR) des Treibers teilt, muss in der Lage sein, ihren IRQL auf DIRQL zu erhöhen, um Race-Bedingungen zu verhindern. NDIS bietet einen solchen Mechanismus.