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.
NDIS ruft die MiniportDriverUnload-Funktion eines Miniporttreibers auf, um den Treiber aufzufordern, Ressourcen freizugeben, bevor das System einen Treiber-Entladevorgang abgeschlossen hat.
Syntax
MINIPORT_UNLOAD MiniportUnload;
void MiniportUnload(
[in] PDRIVER_OBJECT DriverObject
)
{...}
Parameter
[in] DriverObject
Ein Zeiger auf eine DRIVER_OBJECT Struktur, bei der es sich um das Treiberobjekt des Treibers handelt.
Rückgabewert
Nichts
Bemerkungen
Ein Treiber gibt den MiniportDriverUnload Einstiegspunkt an, wenn er die NdisMRegisterMiniportDriver Funktion.
Das Treiberobjekt, das einem NDIS-Miniporttreiber zugeordnet ist, gibt eine Unload Routine an. Das Betriebssystem ruft die Unload Routine auf, wenn alle Geräte, die die Miniporttreiberdienste entfernt wurden, entfernt wurden. NDIS stellt die Unload Routine für NDIS-Treiber bereit. NDIS ruft die MiniportDriverUnload-Funktion eines Miniporttreibers aus der Unload Routine auf.
Die Funktionalität der Unload Routine ist treiberspezifisch. Im Allgemeinen sollten MiniportDriverUnload- die Vorgänge rückgängig machen, die in der DriverEntry Routine des Treibers ausgeführt wurden.
Ein Miniporttreiber ruft die NdisMDeregisterMiniportDriver Funktion von MiniportDriverUnload.
Neben NdisMDeregisterMiniportDriverruft ein Zwischentreiber auch die NdisDeregisterProtocolDriver Funktion zum Aufheben der Registrierung der Protokollschnittstelle des Treibers. MiniportDriverUnload- sollten auch alle erforderlichen Bereinigungsvorgänge ausführen, z. B. die Zuordnung von Protokolltreiberschnittstellenressourcen.
Wenn ein Miniporttreiber mehrere Geräteinstanzen verwaltet, z. B. einen Lastenausgleichstreiber, ruft NDIS MiniportDriverUnload- erst auf, nachdem NDIS die MiniportHaltEx Funktion einmal für jede Geräteinstanz aufruft.
NDIS ruft MiniportDriverUnload- bei IRQL = PASSIVE_LEVEL auf.
beispiele für
Um eine MiniportDriverUnload-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.Wenn Sie beispielsweise eine MiniportDriverUnload--Funktion mit dem Namen "MyDriverUnload" definieren möchten, verwenden Sie den MINIPORT_UNLOAD Typ, wie in diesem Codebeispiel gezeigt:
MINIPORT_UNLOAD MyDriverUnload;
Implementieren Sie dann Ihre Funktion wie folgt:
_Use_decl_annotations_
VOID
MyDriverUnload(
PDRIVER_OBJECT DriverObject
)
{...}
Der MINIPORT_UNLOAD 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_UNLOAD 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 |