Freigeben über


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.

Hinweis Sie müssen die Funktion mithilfe des MINIPORT_DEVICE_PNP_EVENT_NOTIFY Typs deklarieren. Weitere Informationen finden Sie im folgenden Abschnitt "Beispiele".
 

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).
Im zweiten Fall gibt der Wert bei InformationBuffer an, ob das System auf Akkubetrieb (NdisPowerProfileBattery) oder Ac Power (NdisPowerProfileAcOnline) ausgeführt wird. Ein Treiber kann diese Informationen verwenden, um den Stromverbrauch des angegebenen Miniportadapters anzupassen. Beispielsweise könnte der Treiber für ein drahtloses LAN-Gerät den Stromverbrauch verringern, wenn das System auf Akkustrom ausgeführt wird oder den Stromverbrauch erhöhen, wenn das System mit Netzstrom ausgeführt wird.

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.
Nachdem NDIS die MiniportDevicePEventNotify Funktion aufgerufen hat, um auf eine Überraschung hinzuweisen, ruft NDIS die MiniportHaltEx--Funktion des Treibers auf. Wenn der Treiber Sendeanforderungen oder OID-Anforderungen empfängt, bevor NDIS MiniportHaltExaufruft, sollte er diese Anforderungen sofort mit dem Statuswert NDIS_STATUS_NOT_ACCEPTED abschließen.

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

Siehe auch

MiniportHaltEx

MiniportInitializeEx-

NET_DEVICE_PNP_EVENT

NdisMRegisterMiniportDriver-

OID_PNP_SET_POWER