Freigeben über


MINIPORT_CHECK_FOR_HANG Rückruffunktion (ndis.h)

Warnung

Die MiniportCheckForHangEx- und MiniportResetEx- Rückruffunktionen werden für alle NDIS 6.83- und höher-Treiber abgeraten. Weitere Informationen finden Sie unter Check-for-Hang- und Reset-Vorgänge in NDIS 6.83 und höher.

NDIS ruft die MiniportCheckForHangEx- funktion eines Miniporttreibers auf, um den Betriebszustand des Miniportadapters zu überprüfen, der eine Netzwerkschnittstellenkarte (Network Interface Card, NIC) darstellt.

Hinweis Ein Miniporttreiber kann diese Funktion mithilfe des MINIPORT_CHECK_FOR_HANG Typs deklarieren.
 
Hinweis Ab NDIS 6.30 darf diese Funktion nicht für Treiber registriert werden, die auf SoC-Plattformen mit niedriger Leistung ausgeführt werden, um negative Auswirkungen auf die Leistung zu vermeiden, die durch die regelmäßige Check-for-Hang--Aktivität verursacht wird.
 

Syntax

MINIPORT_CHECK_FOR_HANG MiniportCheckForHang;

BOOLEAN MiniportCheckForHang(
  [in] NDIS_HANDLE MiniportAdapterContext
)
{...}

Parameter

[in] MiniportAdapterContext

Ein Handle zu einem Kontextbereich, den der Miniporttreiber in seiner MiniportInitializeEx--Funktion zugewiesen hat. Der Miniporttreiber verwendet diesen Kontextbereich, um Zustandsinformationen für einen Miniportadapter beizubehalten.

Rückgabewert

MiniportCheckForHangEx gibt TRUE- zurück, wenn der Treiber feststellt, dass eine NIC nicht ausgeführt wird und NDIS die MiniportResetEx--Funktion des Treibers aufrufen soll. Weitere Informationen finden Sie im Abschnitt "Hinweise".

Bemerkungen

Ein Miniporttreiber gibt den MiniportCheckForHangEx Einstiegspunkt an, wenn er die NdisMRegisterMiniportDriver Funktion.

MiniportCheckForHangEx- ist für Zwischentreiber nicht erforderlich.

MiniportCheckForHangEx den internen Zustand der NIC nicht mehr überprüfen und TRUE- zurückgeben, wenn erkannt wird, dass die NIC nicht ordnungsgemäß funktioniert.

Standardmäßig ruft NDIS MiniportCheckForHangEx ungefähr alle zwei Sekunden auf. Aus diesem Grund sollte die MiniportCheckForHangEx--Funktion ihres Miniporttreibers so schnell wie möglich zurückgegeben werden.

Hinweis Ab NDIS 6.30 wird ein koessierbarer Zeitgeber mit hoher Toleranz für die Messung von Intervallen zwischen Aufrufen von MiniportCheckForHangEx verwendet. Daher sollte diese Routine nicht für zeitempfindliche Vorgänge verwendet werden.
 
Wenn MiniportCheckForHangExTRUE-zurückgibt, ruft NDIS die MiniportResetEx- funktion des Miniporttreibers auf.

Wenn ein Miniporttreiber eine OID-Anforderung innerhalb von zwei aufeinander folgenden Aufrufen von MiniportCheckForHangExnicht abschließt, kann NDIS die MiniportResetEx- funktion des Treibers aufrufen. Um unnötige Resets zu vermeiden, kann die MiniportInitializeEx--Funktion des Treibers das Timeoutintervall für "Check-for-Hang" erweitern, indem ein geeignetes CheckForHangTimeInSeconds Wert festgelegt wird, wenn der Wert aufgerufen wird. NdisMSetMiniportAttributes Funktion.

Weitere Informationen zum Festlegen des CheckForHangTimeInSeconds Timeoutwerts finden Sie unter Miniport Adapter Check-for-Hang and Reset Operations.

Hinweis Ab NDIS 6.30 muss MiniportCheckForHangExTRUE- zurückgeben, wenn der Miniporttreiber erkennt, dass die NIC keine ausstehende Sendeanforderung abgeschlossen hat, bevor ein Timeoutzeitraum abgelaufen ist. Der Timeoutzeitraum ist treiberspezifisch, es wird jedoch empfohlen, einen Timeoutzeitraum von 2 Sekunden zu verwenden.
 
MiniportCheckForHangEx- kann durch einen Interrupt vorgedrängt werden.

NDIS ruft MiniportCheckForHangEx bei IRQL = PASSIVE_LEVEL auf.

beispiele für

Um eine MiniportCheckForHangEx--Funktion zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der Funktion identifiziert, die Sie definieren. Windows stellt eine Reihe von Funktionstypen für Treiber bereit. Durch das Deklarieren einer Funktion mithilfe der Funktionstypen können Codeanalyse für Treiber, statische Treiberüberprüfung (SDV) und andere Überprüfungstools Fehler finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine MiniportCheckForHangEx--Funktion zu definieren, die den Namen "MyCheckForHangEx" hat, verwenden Sie den MINIPORT_CHECK_FOR_HANG Typ, wie in diesem Codebeispiel gezeigt:

MINIPORT_CHECK_FOR_HANG MyCheckForHangEx;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
BOOLEAN
 MyCheckForHangEx(
    NDIS_HANDLE  MiniportAdapterContext
    )
  {...}

Der MINIPORT_CHECK_FOR_HANG Funktionstyp wird in der Ndis.h-Headerdatei definiert. Um Fehler genauer zu identifizieren, wenn Sie die Codeanalysetools ausführen, müssen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzufügen. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen, die auf den funktionstyp MINIPORT_CHECK_FOR_HANG in der Headerdatei angewendet werden, verwendet werden. Weitere Informationen zu den Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für NDIS-Treiber.

Informationen zu Use_decl_annotationsfinden Sie unter Annotating Function Behavior.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt in NDIS 6.0 und höher.
Zielplattform- Fenster
Header- ndis.h (include Ndis.h)
IRQL- PASSIVE_LEVEL

Siehe auch

Miniport adapter Check-for-Hang and Reset Operations

MiniportInitializeEx-

MiniportResetEx-

NdisMRegisterMiniportDriver-

NdisMSetMiniportAttributes