Freigeben über


NET_PNP_EVENT Struktur (netpnp.h)

Die NET_PNP_EVENT Struktur beschreibt ein Netzwerk-Plug-and-Play-Ereignis (PnP), ein NDIS PnP-Ereignis oder ein Energieverwaltungsereignis.

Syntax

typedef struct _NET_PNP_EVENT {
  NET_PNP_EVENT_CODE NetEvent;
  PVOID              Buffer;
  ULONG              BufferLength;
  ULONG_PTR          NdisReserved[4];
  ULONG_PTR          TransportReserved[4];
  ULONG_PTR          TdiReserved[4];
  ULONG_PTR          TdiClientReserved[4];
} NET_PNP_EVENT, *PNET_PNP_EVENT;

Angehörige

NetEvent

Ein Ereigniscode, der das Ereignis als eine der folgenden Beschreibt:

NetEventSetPower

Gibt an, dass der Power Manager eine Set Power-Anforderung gesendet hat, die einen Übergang zu einem Systemstromzustand angibt. NDIS übersetzt diesen Zustand in einen geeigneten Gerätestromzustand für das Gerät.

Weitere Informationen finden Sie im Abschnitt "Hinweise".

NetEventQueryPower

Gibt an, dass der Power Manager eine Abfrage-Power-Anforderung gesendet hat, die einen Übergang zu einem Systemstromzustand anfordert. NDIS übersetzt diesen Zustand in einen geeigneten Gerätestromzustand für das Gerät.

Weitere Informationen finden Sie im Abschnitt "Hinweise".

NetEventQueryRemoveDevice

Gibt an, dass der PnP-Manager eine Anforderung zum Entfernen eines Abfragegeräts gesendet hat. Der PnP-Manager sendet diese Anforderung, um abzufragen, ob ein Gerät entfernt werden kann, ohne Vorgänge zu unterbrechen.

NetEventCancelRemoveDevice

Gibt an, dass der PnP-Manager eine Anforderung zum Entfernen des Geräts "Abbrechen" gesendet hat. Der PnP-Manager sendet diese Anforderung, um das Entfernen eines Geräts abzubrechen, nachdem der PnP-Manager eine Abfrage entfernen Geräteanforderung gesendet hat.

NetEventReconfigure

Gibt an, dass die Konfiguration für eine Netzwerkkomponente geändert wurde. Wenn ein Benutzer beispielsweise über den Ordner "Netzwerk- und DFÜ-Verbindungen" die IP-Adresse für TCP/IP ändert, gibt NDIS den NetEventReconfigure Ereignis in das TCP/IP-Protokoll an. Außerdem verwendet ein Zwischentreiber dieses Ereignis in der Regel als Trigger zum Aufrufen des NdisIMInitializeDeviceInstanceEx Funktion und starten sie die virtuellen Miniports. Weitere Informationen zu NetEventReconfigurefinden Sie unter NetEventIMReEnableDevice.

NetEventBindList

Gibt an, dass der Bindungslistenverarbeitungsauftrag für einen Protokolltreiber neu konfiguriert wurde. Diese Liste gibt eine relative Reihenfolge an, die für Bindungen bei der Verarbeitung gilt, z. B. eine Benutzeranforderung, die an eine von mehreren Bindungen weitergeleitet werden kann. Der Puffer, der mit diesem Ereignis übergeben wird, enthält eine Liste von Gerätenamen, die als mit Null beendete Unicode-Zeichenfolgen formatiert sind. Das Format der einzelnen Gerätenamen ist identisch mit dem AdapterName Member, das an einen Aufruf der ProtocolBindAdapterEx--Funktion übergeben wird.

NetEventBindsComplete

Gibt an, dass ein Protokolltreiber an alle NICs gebunden ist, an die er gebunden werden kann. NDIS gibt keine weiteren NICs für das Protokoll an, es sei denn, eine PnP-NIC ist an das System angeschlossen.

NetEventPnPCapabilities

Gibt an, dass der Benutzer die Wake-Up-Funktionen des zugrunde liegenden Adapters aktiviert oder deaktiviert hat. (Die Bindung wird durch den ProtocolBindingContext Parameter angegeben, der an die ProtocolNetPnPEvent--Funktion übergeben wird.)

NetEventPause

Gibt an, dass die angegebene Protokollbindung den Anhalten-Zustand eingeben soll. Die Bindung wechselt in den Zustand "Angehalten", nachdem NDIS alle ausstehenden Sendeanforderungen für die Bindung abgeschlossen hat.

NetEventRestart

Gibt an, dass die angegebene Protokollbindung den Neustartstatus eingegeben hat. Nachdem der Protokolltreiber bereit ist, Sende- und Empfangsvorgänge für die Bindung fortzusetzen, wechselt die Bindung in den Zustand "Running".

NetEventPortActivation

Gibt die Aktivierung einer Liste von Ports an, die der angegebenen Bindung zugeordnet sind.

NetEventPortDeactivation

Gibt die Deaktivierung einer Liste von Ports an, die der angegebenen Bindung zugeordnet sind.

NetEventIMReEnableDevice

Gibt an, dass die Konfiguration für einen virtuellen Miniport eines NDIS 6.0- oder höher-Zwischentreibers geändert wurde. NetEventIMReEnableDevice ähnelt dem NetEventReconfigure Ereignis, mit der Ausnahme, dass der Zwischentreiber dieses Ereignis für einen einzelnen virtuellen Miniport empfängt, und das NetEventReconfigure-Ereignis gilt für alle virtuellen Miniports des Zwischentreibers. Beispielsweise empfängt ein Zwischentreiber das NetEventIMReEnableDevice Ereignis, wenn ein Benutzer einen einzelnen virtuellen Miniport aus dem Geräte-Manager oder einer anderen Quelle deaktiviert und aktiviert. Beispiele für die Energieverwaltung zwischen Treibern finden Sie im NDIS MUX Intermediate Driver and Notify Object Treiberbeispiel, das im Windows-Treiberbeispiel Repository auf GitHub verfügbar ist.

NetEventNDKEnable

Gibt an, dass network Direct Kernel (NDK) zurzeit aktiviert ist.

NetEventNDKDisable

Gibt an, dass NDK derzeit deaktiviert ist.

NetEventFilterPreDetach

Gibt an, dass ein Filter getrennt werden soll, sodass der Filter alle erforderlichen Bereinigungen ausführen kann, die im FilterDetach Handlers nicht möglich sind (da die OID- und Indikationspfade zu diesem Zeitpunkt geschlossen werden).

NetEventBindFailed

Gibt an, dass ein Bindungsereignisfehler aufgetreten ist.

NetEventSwitchActivate

Gibt an, dass der Hyper-V Extensible Switch die Aktivierung abgeschlossen hat, und Switcherweiterungen können jetzt sicher nach einer weiteren Switchkonfiguration abfragen. Die Angabe wird nur im Hyper-V Extensible Switch Stack verwendet, der vom Erweiterungs-Miniport ausgegeben wird. Weitere Informationen finden Sie unter Abfragen der Konfiguration Hyper-V Extensible Switch Configuration und NDIS_SWITCH_PARAMETERS.

NetEventInhibitBindsAbove

Ein synchrones Ereignis, das verhindert, dass andere Filter und Protokolle an den Miniportadapter gebunden werden. Alle Zuvor gebundenen Filter oder Protokolle sind vor Abschluss des Ereignisses ungebunden. Die Verwendungsregeln sind unten aufgeführt.

  • Vermeiden Sie, den Miniportadapter im Hemmzustand zu verlassen, länger als 1000 Millisekunden.
  • Dieses Ereignis kann nur ausgegeben werden, nachdem MiniportInitializeEx beginnt und nach Rückgabe von MiniportHalt Ex nicht ausgestellt werden darf.
  • Dieses Ereignis kann nur ausgegeben werden, wenn sich der Miniportadapter in einem D0-Zustand befindet.
  • Da dieses Ereignis blockiert wird, sollte es nicht von einem Kontext ausgegeben werden, der zu einem Deadlock führen würde.
  • Sperren dürfen beim Ausgeben dieses Ereignisses nicht gehalten werden.
  • Dieses Ereignis muss bei PASSIVE_LEVEL ausgestellt werden.
Dieses Ereignis ist ab NDIS Version 6.50 verfügbar und muss mit V2 oder höherer Version von NET_PNP_EVENTverwendet werden. Dieses Ereignis kann optional von einem Miniporttreiber ausgestellt werden. Protokolle und Filter können dieses Ereignis nicht empfangen oder ausstellen.

NetEventAllowBindsAbove

Ein asynchrones Ereignis, das die Auswirkungen von NetEventInhibitBindsAbove umkehrt. Die Verwendungsregeln sind unten aufgeführt.

  • Dieses Ereignis kann nur ausgegeben werden, nachdem MiniportInitializeEx beginnt und nach Rückgabe von MiniportHalt Ex nicht ausgestellt werden darf.
  • Dieses Ereignis kann nur ausgegeben werden, wenn sich der Miniportadapter in einem D0-Zustand befindet.
  • Sperren dürfen beim Ausgeben dieses Ereignisses nicht gehalten werden.
  • Dieses Ereignis muss bei PASSIVE_LEVEL ausgestellt werden.
Dieses Ereignis ist ab NDIS Version 6.50 verfügbar und muss mit V2 oder höherer Version von NET_PNP_EVENTverwendet werden. Dieses Ereignis kann optional von einem Miniporttreiber ausgestellt werden. Protokolle und Filter können dieses Ereignis nicht empfangen oder ausstellen.

NetEventRequirePause

Ein synchrones Ereignis, das die Protokolle und Filter einschließlich des Miniportadapters angibt, muss angehalten werden. Die Protokolle und Filter und der Miniportadapter werden garantiert angehalten, wenn die NdisMNetPnPEvent Routine zurückgegeben wird. Die Verwendungsregeln sind unten aufgeführt.

  • Vermeiden Sie Verzögerungen zwischen NetEventAllowStart- und NetEventRequirePause-Ereignissen für mehr als 1000 Millisekunden, um Verzögerungen in Benutzeranwendungen zu verhindern.
  • Dieses Ereignis kann nur ausgegeben werden, nachdem MiniportInitializeEx beginnt und nach Rückgabe von MiniportHalt Ex nicht ausgestellt werden darf.
  • Es gibt keine Garantie, dass NDIS MiniportPause aufruft, nachdem dieses Ereignis ausgestellt wurde. Wenn ihr Miniportadapter bereits angehalten ist, führt NDIS keine zusätzliche Start-Pause-Schleife ein. Dies bedeutet, dass die Anzahl der Male, die MiniportPause aufgerufen wird, nicht größer als, kleiner oder gleich dem Betrag ist, den dieses Ereignis ausgegeben wird.
  • Da dieses Ereignis blockiert wird, sollte es nicht von einem Kontext ausgegeben werden, der zu einem Deadlock führen würde.
  • Sperren dürfen beim Ausgeben dieses Ereignisses nicht gehalten werden.
Dieses Ereignis ist ab NDIS Version 6.50 verfügbar und muss mit V2 oder höherer Version von NET_PNP_EVENTverwendet werden. Dieses Ereignis kann optional von einem Miniporttreiber ausgestellt werden. Protokolle und Filter können dieses Ereignis nicht empfangen oder ausstellen.

NetEventAllowStart

Ein asynchrones Ereignis, das die Protokolle und Filter einschließlich des Miniportadapters angibt, muss nicht angehalten werden. Die Verwendungsregeln sind unten aufgeführt. Es gibt keinen garantierten Pausenzustand für jeden Treiber in den Protokollen und Filtern, nachdem die NdisMNetPnPEvent Routine zurückgegeben wird.

  • Dieses Ereignis kann nur ausgegeben werden, nachdem MiniportInitializeEx beginnt und nach Rückgabe von MiniportHalt Ex nicht ausgestellt werden darf.
  • Da dieses Ereignis blockiert wird, sollte es nicht von einem Kontext ausgegeben werden, der zu einem Deadlock führen würde.
  • Sperren dürfen beim Ausgeben dieses Ereignisses nicht gehalten werden.
Dieses Ereignis ist ab NDIS Version 6.50 verfügbar und muss mit V2 oder höherer Version von NET_PNP_EVENTverwendet werden. Dieses Ereignis kann optional von einem Miniporttreiber ausgestellt werden. Protokolle und Filter können dieses Ereignis nicht empfangen oder ausstellen.

Buffer

Die Adresse eines Puffers, der Informationen enthält, die für das im NetEvent Member angegebene Ereignis spezifisch sind. Für jeden Ereignistyp enthält der Puffer die folgenden Informationen:

NetEventSetPower

Der Puffer enthält den Gerätestromzustand, zu dem das Gerät wechselt.

Wenn NDIS die ProtocolNetPnPEvent-Funktion eines Protokolltreibers aufruft, wird der Gerätezustand NDIS_DEVICE_POWER_STATE. Dies kann einer der folgenden Werte sein:

NdisDeviceStateUnspecified

Das Netzwerkgerät unterstützt keine Energieverwaltung.

NdisDeviceStateD0

Der vollständig unterstützte Zustand, in dem das Gerät volle Funktionalität und Leistung bietet.

NdisDeviceStateD1

Ein Energiesparzustand, in dem Übertragungsanforderungen vom Host nicht vom Gerät berücksichtigt werden, daten, die vom Gerät empfangen werden, werden nicht an den Hostspeicher übertragen, und es können keine Unterbrechungen auftreten. Möglicherweise geht ein Gerätekontext verloren. Je nach den Funktionen der NIC und seines Miniporttreibers kann das Gerät möglicherweise ein Wake-up-Signal generieren.

NdisDeviceStateD2

Ein Energiesparzustand, der NdisDeviceStateD1ähnelt, mit der Ausnahme, dass mehr Energie und weniger Kontext in der Regel gespeichert werden und mehr Zeit für den Übergang zum vollbetriebenen Zustand erforderlich ist.

NdisDeviceStateD3

Der Aus-Zustand, in dem der Strom vollständig vom Gerät entfernt wurde.

Für Protokolltreiber bedeutet NdisDeviceStateD0, dass die NIC vollständig betrieben wird und für normale Vorgänge verfügbar ist. Jeder andere Gerätezustand bedeutet, dass das Gerät nicht vollständig eingeschaltet ist und nicht für das Senden und Empfangen von Netzwerkdaten verfügbar ist.

NetEventQueryPower

Der Puffer enthält den Gerätestromzustand, der für das Gerät angefordert wird. Der Gerätestatus ist NDIS_DEVICE_POWER_STATE (die in der beschreibung NetEventSetPower Wertbeschreibung beschrieben wird).

NetEventQueryRemoveDevice

Der Pufferinhalt ist NULL-.

NetEventCancelRemoveDevice

Der Pufferinhalt ist NULL-.

NetEventReconfigure

Der Puffer kann protokollspezifische Daten enthalten. Der Protokolltreiber ist für die Überprüfung dieser Daten verantwortlich.

NetEventBindList

Der Puffer enthält eine überarbeitete Bindungsliste für die Netzwerkkomponente, die NET_PNP_EVENT_NOTIFICATION Struktur wird übergeben. Die Bindungsliste, bei der es sich um eine Reihe von mit Null beendeten Unicode-Zeichenfolgen handelt, weist ein REG_MULTI_SZ Format auf. Jede der Zeichenfolgen ist ein Adaptername. TDI-Clients, die an ein Protokoll gebunden sind, verwenden diese Bindungsliste, um ihre Bindungen neu anzuordnen. Der Protokolltreiber ist für die Überprüfung dieser Liste verantwortlich.

NetEventBindsComplete

Der Pufferinhalt ist NULL-.

NetEventPnPCapabilities

Der Puffer ist ein ULONG, das eine Bitmaske enthält. Wenn das NDIS_DEVICE_WAKE_UP_ENABLE Flag in der Bitmaske festgelegt ist, werden die Wake-up-Funktionen der NIC aktiviert. Andernfalls sind die NIC-Wake-up-Funktionen deaktiviert. (Die Bindung wird durch den ProtocolBindingContext Parameter angegeben, der an ProtocolNetPnPEventübergeben wird.) Wenn diese Kennzeichnung auf Null festgelegt ist, gibt dieses Flag an, dass die NIC-Wake-Up-Funktionen deaktiviert sind.

NetEventPause

Der Puffer enthält einen NDIS_PROTOCOL_PAUSE_PARAMETERS Struktur.

NetEventRestart

Der Puffer enthält möglicherweise NULL oder einen NDIS_PROTOCOL_RESTART_PARAMETERS Struktur. NDIS stellt einen Zeiger auf eine NDIS_RESTART_ATTRIBUTES Struktur im RestartAttributes Member der NDIS_PROTOCOL_RESTART_PARAMETERS-Struktur bereit.

Hinweis Wenn der Puffer NULL ist, wurden die Neustartattribute seit dem vorherigen Neustart nicht geändert.
 

NetEventPortActivation

Der Puffer enthält den ersten Eintrag in einer Liste von NDIS_PORT Strukturen, die die ports identifizieren, die NDIS aktiviert. Sie können das Next Member der NDIS_PORT-Struktur verwenden, um die nächste Struktur in der Liste abzurufen.

NetEventPortDeactivation

Der Puffer enthält ein Array von Portnummern vom Typ NDIS_PORT_NUMBER (definiert als ULONG), das die NDIS-Ports identifiziert, die NDIS deaktivieren. Um die Anzahl der Elemente im Array zu berechnen, dividieren Sie den Wert des BufferLength Members, das sich in der NET_PNP_EVENT Struktur befindet, die im NetPnPEvent Member von NET_PNP_EVENT_NOTIFICATIONdurch sizeof(NDIS_PORT_NUMBER) angegeben ist.

NetEventIMReEnableDevice

Der Puffer enthält einen Zeiger auf eine Variable vom Typ NDIS_STRING, die eine mit Null beendete Unicode-Zeichenfolge enthält, die das Geräteobjekt eines virtuellen Miniports für das gerät benennt, das aktiviert wird. Die Zeichenfolge ist ein vollständiger Pfadname, z. B. \Device\DeviceName.

NetEventNDKEnable

Das Buffer Member ist NULL-.

NetEventNDKDisable

Das Buffer Member ist NULL-.

NetEventFilterPreDetach

Das Buffer Member ist NULL-.

NetEventBindFailed

Der Puffer enthält eine NDIS_BIND_FAILED_NOTIFICATION Struktur.

NetEventSwitchActivate

Der Pufferinhalt ist NULL.

NetEventAllowBindsAbove

Der Pufferinhalt ist NULL.

NetEventInhibitBindsAbove

Der Pufferinhalt ist NULL.

NetEventAllowStart

Der Pufferinhalt ist NULL.

NetEventRequirePause

Der Pufferinhalt ist NULL.

BufferLength

Die Anzahl der Bytes ereignisspezifischer Informationen bei Buffer.

NdisReserved[4]

Ein Bereich, der für die Verwendung durch NDIS reserviert ist.

TransportReserved[4]

Ein Vom Transportfahrer reservierter Bereich.

TdiReserved[4]

Ein Bereich, der für die Verwendung durch TDI reserviert ist.

TdiClientReserved[4]

Ein Bereich, der für die Verwendung durch einen TDI-Client reserviert ist.

Bemerkungen

Wenn das Betriebssystem in NDIS 6.0 und höheren Versionen ein System-PnP-Ereignis oder ein Energieverwaltungsereignis auf ein Zielgerätobjekt ausgibt, das einen Miniportadapter darstellt, übersetzt NDIS das Ereignis in ein NET_PNP_EVENT_NOTIFICATION Struktur. Das NetPnPEvent- Mitglied der NET_PNP_EVENT_NOTIFICATION-Struktur ist eine NET_PNP_EVENT Struktur.

NDIS übergibt einen Zeiger an die NET_PNP_EVENT Struktur an jeden Protokolltreiber, der an den Miniportadapter gebunden ist, indem die ProtocolNetPnPEvent--Funktion des Protokolltreibers aufgerufen wird. Der Protokolltreiber sollte diesen Zeiger speichern, da der Zeiger ein Eingabeparameter für die NdisCompleteNetPnPEvent--Funktion ist, die der Treiber aufruft, um den Aufruf von ProtocolNetPnPEvent asynchron abzuschließen.

NDIS übergibt einen Zeiger an die NET_PNP_EVENT Struktur an jeden Filtertreiber, der an den Miniportadapter gebunden ist, indem der FilterNetPnPEvent--Funktion des Filtertreibers aufgerufen wird. Der Filtertreiber muss diesen Zeiger nicht speichern, da der Treiber den Aufruf FilterNetPnPEvent- synchron abschließen muss.

Ab NDIS 6.30 muss der Protokoll- oder Filtertreiber diese Richtlinien befolgen, wenn NDIS die funktionen ProtocolNetPnPEvent oder FilterNetPnPEvent- aufruft:

  • Wenn das NetEvent Member der NET_PNP_EVENT-Struktur auf NetEventSetPowerfestgelegt ist, muss der Treiber die Generierung neuer E/A-Anforderungen beenden. Außerdem darf der Treiber nicht auf den Abschluss ausstehender E/A-Anforderungen warten.

    Nachdem das Protokoll oder der Filtertreiber von ProtocolNetPnPEvent- oder FilterNetPnPEvent-zurückgegeben wurde, hält NDIS diese Treiber nicht an und startet diese Treiber während der Energiezustandsübergänge neu, wenn die folgenden Bedingungen zutreffen:

    • Der zugrunde liegende Miniporttreiber legt das NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND Flag in der NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES Struktur fest. Der Treiber übergibt einen Zeiger auf diese Struktur im Aufruf der NdisMSetMiniportAttributes- Funktion.
    • Alle Filtertreiber, die an den Miniporttreiber angefügt sind, unterstützen NDIS 6.30 oder höhere Versionen von NDIS.
    • Alle Protokolltreiber, die an den Miniporttreiber gebunden sind, unterstützen NDIS 6.30 oder höhere Versionen von NDIS.
  • Wenn das NetEvent Member der NET_PNP_EVENT-Struktur auf NetEventSetPower oder NetEventQueryPowerfestgelegt ist, darf der Treiber nicht auf den Abschluss ausstehender E/A-Anforderungen warten.
Das NetEvent--Mitglied in der NET_PNP_EVENT-Struktur identifiziert den Typ des Plug-and-Play- oder Power Management-Ereignisses. Die Puffer- enthält Informationen, die für den Ereignistyp spezifisch sind.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt in NDIS 5.1 und NDIS 6.0 und höher. Weitere Informationen zur NDIS 5.1-Version dieser Struktur finden Sie unter NET_PNP_EVENT (NDIS 5.1).
Header- netpnp.h (include Ndis.h, Netpnp.h)

Siehe auch

FilterNetPnPEvent-

NDIS_BIND_FAILED_NOTIFICATION

NDIS_PORT

NDIS_PROTOCOL_PAUSE_PARAMETERS NDIS_PROTOCOL_RESTART_PARAMETERS

NDIS_RESTART_ATTRIBUTES

NDIS_SWITCH_PARAMETERS

NET_PNP_EVENT_NOTIFICATION

NdisCompleteNetPnPEvent-

NdisIMInitializeDeviceInstanceEx

ProtocolBindAdapterEx-

ProtocolNetPnPEvent-

Abfragen der Hyper-V Extensible Switch Configuration