Freigeben über


MINIPORT_REMOVE_DEVICE Rückruffunktion (ndis.h)

Die MiniportRemoveDevice-Funktion gibt Ressourcen frei, die der Funktion MiniportAddDevice zugeordnet wurden.

Hinweis Sie müssen die Funktion mit dem typ MINIPORT_REMOVE_DEVICE deklarieren. Weitere Informationen finden Sie im folgenden Abschnitt Beispiele.
 

Syntax

MINIPORT_REMOVE_DEVICE MiniportRemoveDevice;

void MiniportRemoveDevice(
  [in] NDIS_HANDLE MiniportAddDeviceContext
)
{...}

Parameter

[in] MiniportAddDeviceContext

Ein Handle für einen vom Treiber zugewiesenen Kontextbereich, den der Miniporttreiber bei NDIS in der MiniportAddDevice-Funktion registriert hat .

Rückgabewert

Keine

Bemerkungen

Die MiniportRemoveDevice-Funktion ist eine optionale Funktion. Miniporttreiber, die MSI-X unterstützen, sollten einen Einstiegspunkt für diese Funktion in der NDIS_MINIPORT_PNP_CHARACTERISTICS-Struktur .

Wenn NDIS eine Anforderung vom Plug & Play-Manager (PnP) zum Entfernen eines Geräts empfängt, ruft NDIS die MiniportRemoveDevice-Funktion auf. MiniportRemoveDevice sollte dann die Von der MiniportAddDevice-Funktion ausgeführten Vorgänge rückgängig gemacht werden.

Miniportadapter werden möglicherweise mehrmals angehalten und initialisiert, bevor NDIS MiniportRemoveDevice aufruft. Wenn NDIS den Namen MiniportAddDevice hat und NDIS_STATUS_SUCCESS zurückgegeben hat, ruft NDIS miniportAddDevice nicht für denselben Miniportadapter auf, bevor MiniportRemoveDevice für diesen Adapter aufgerufen wird.

NDIS ruft MiniportRemoveDevice unter IRQL = PASSIVE_LEVEL auf.

Beispiele

Um eine MiniportRemoveDevice-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der zu definierenden Funktion identifiziert. Windows bietet eine Reihe von Funktionstypen für Treiber. Das Deklarieren einer Funktion mithilfe der Funktionstypen hilft der Codeanalyse für Treiber, der statischen Treiberüberprüfung (Static Driver Verifier , SDV) und anderen Überprüfungstools, Fehler zu finden, und es ist eine Voraussetzung für das Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine MiniportRemoveDevice-Funktion mit dem Namen "MyRemoveDevice" zu definieren, verwenden Sie den typ MINIPORT_REMOVE_DEVICE , wie in diesem Codebeispiel gezeigt:

MINIPORT_REMOVE_DEVICE MyRemoveDevice;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
VOID
 MyRemoveDevice(
    NDIS_HANDLE  MiniportAddDeviceContext
    )
  {...}

Der MINIPORT_REMOVE_DEVICE Funktionstyp ist in der Ndis.h-Headerdatei definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, müssen Sie der Funktionsdefinition die anmerkung Use_decl_annotations hinzufügen. Die Use_decl_annotations-Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den MINIPORT_REMOVE_DEVICE Funktionstyp in der Headerdatei angewendet 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_annotations finden Sie unter Verhalten von Funktionen mit Anmerkungen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Windows
Kopfzeile ndis.h (include Ndis.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

MiniportAddDevice

NDIS_MINIPORT_INIT_PARAMETERS

NDIS_MINIPORT_PNP_CHARACTERISTICS