MINIPORT_DEVICE_PNP_EVENT_NOTIFY Rückruffunktion (ndis.h)
NDIS ruft die MiniportDevicePnPEventNotify-Funktion eines Miniporttreibers auf, um den Treiber über Plug and Play-Ereignisse (PnP) zu benachrichtigen.
Syntax
MINIPORT_DEVICE_PNP_EVENT_NOTIFY MiniportDevicePnpEventNotify;
void MiniportDevicePnpEventNotify(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] PNET_DEVICE_PNP_EVENT NetDevicePnPEvent
)
{...}
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.
[in] NetDevicePnPEvent
Ein Zeiger auf eine NET_DEVICE_PNP_EVENT-Struktur, die ein Plug- und Play-Ereignis eines Geräts beschreibt.
Rückgabewert
Nichts
Bemerkungen
Ein Treiber gibt den MiniportDevicePnPEventNotify Einstiegspunkt an, wenn er die NdisMRegisterMiniportDriver Funktion.
NDIS ruft die MiniportDevicePnPEventNotify-Funktion mit dem DevicePnPEvent Member des NetDevicePEvent--Parameters auf NdisDevicePEventPowerProfileChanged nach einem der folgenden Ereignisse auf:
- Die Treiberinitialisierung ist abgeschlossen.
- Der Treiber hat eine OID_PNP_SET_POWER Benachrichtigung erhalten, die den Betriebszustand angibt ( NdisDeviceStateD0).
Wenn ein Treiber eine Überraschungsentfernungsbenachrichtigung erhält (das DevicePnPEvent Member des NetDevicePnPEvent Parameter ist NdisDevicePEventSurpriseRemoved), sollte folgendes sein:
- Beachten Sie intern, dass das Gerät entfernt wurde.
- Brechen Sie alle ausstehenden IRPs ab, die sie an den zugrunde liegenden Bustreiber gesendet hat.
NDIS ruft MiniportDevicePEventNotify bei IRQL = PASSIVE_LEVEL auf.
beispiele für
Um eine MiniportDevicePnPEventNotify 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 MiniportDevicePnPEventNotify-Funktion zu definieren, die den Namen "MyDevicePnPEventNotify" hat, verwenden Sie den MINIPORT_DEVICE_PNP_EVENT_NOTIFY Typ, wie in diesem Codebeispiel gezeigt:
MINIPORT_DEVICE_PNP_EVENT_NOTIFY MyDevicePnPEventNotify;
Implementieren Sie dann Ihre Funktion wie folgt:
_Use_decl_annotations_
VOID
MyDevicePnPEventNotify(
NDIS_HANDLE MiniportAdapterContext,
PNET_DEVICE_PNP_EVENT NetDevicePnPEvent
)
{...}
Der MINIPORT_DEVICE_PNP_EVENT_NOTIFY 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_DEVICE_PNP_EVENT_NOTIFY 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 |
DDI-Complianceregeln | NdisOidComplete |