OID_PM_ADD_PROTOCOL_OFFLOAD
Als Satz verwenden NDIS-Protokolltreiber die OID_PM_ADD_PROTOCOL_OFFLOAD OID, um einem Netzwerkadapter eine Protokollauslagerung für die Energieverwaltung hinzuzufügen. Das InformationBuffer-Element der NDIS_OID_REQUEST-Struktur enthält einen Zeiger auf eine NDIS_PM_PROTOCOL_OFFLOAD-Struktur .
Bemerkungen
NDIS 6.20- und höher-Protokolltreiber verwenden OID_PM_ADD_PROTOCOL_OFFLOAD OID, um einem Netzwerkadapter eine Protokollauslagerung für die Energieverwaltung hinzuzufügen. Wenn die Anforderung erfolgreich ist, muss der Netzwerkadapter die erforderlichen Antwortpakete für das ausgeladene Protokoll generieren und übertragen, wenn sich der Netzwerkadapter in einem Energiesparzustand befindet.
Ein Protokolltreiber kann ein Protokoll auslagern, nachdem es erfolgreich an einen zugrunde liegenden Netzwerkadapter gebunden wurde und sobald er über die erforderlichen Daten (z. B. die IP-Adresse der Schnittstelle) zum Auslagern des Protokolls verfügt. Der Protokolltreiber kann ein Protokoll auch als Reaktion auf einige andere Energieverwaltungsereignisbenachrichtigungen auslagern, z. B. die Ablehnung eines zuvor hinzugefügten WOL-Musters oder eines ausgeladenen Protokolls.
Um Racebedingungen in NDIS und anderen Protokolltreibern zu vermeiden, die an denselben Miniportadapter gebunden sind, schlägt der Versuch fehl, ein anderes Protokoll an diesen Netzwerkadapter auszulagern, nachdem NDIS gestartet hat, einen Energiesparzustand für einen Netzwerkadapter festzulegen. Wenn beispielsweise ein NDIS-Protokolltreiber versucht, ein Protokoll im Kontext der Verarbeitung einer NetEventSetPower-Ereignisbenachrichtigung für diesen Netzwerkadapter auszulagern, schlägt NDIS die Anforderung fehl.
Bevor NDIS diese OID-Anforderung an die zugrunde liegenden NDIS-Treiber sendet oder die Anforderung an den übergeordneten Treiber abschließt, wird das ULONG ProtocolOffloadId-Element der NDIS_PM_PROTOCOL_OFFLOAD-Struktur auf einen eindeutigen Wert festgelegt. Protokolltreiber und NDIS verwenden diesen Protokollauslagerungsbezeichner mit der OID_PM_REMOVE_PROTOCOL_OFFLOAD OID-Anforderung, um die Protokollauslagerung vom zugrunde liegenden Netzwerkadapter zu entfernen.
Hinweis Der Protokollauslagerungsbezeichner ist ein eindeutiger Wert für jede Der Protokollauslagerungen, die auf einem Netzwerkadapter festgelegt sind. Der Protokollauslagerungsbezeichner ist jedoch nicht global für alle Netzwerkadapter eindeutig.
Wenn NDIS oder ein zugrunde liegender Netzwerkadapter eine Auslagerung ablehnt, generiert sie eine NDIS_STATUS_PM_OFFLOAD_REJECTED status Angabe. Dies kann auftreten, nachdem NDIS_STATUS_SUCCESS für die OID zurückgegeben wurde. Der StatusBuffer-Member der NDIS_STATUS_INDICATION-Struktur enthält den ULONG-Protokollauslagerungsbezeichner der abgelehnten Protokollauslagerung.
Informationen dazu, wie ein nativer 802.11-Wireless-LAN-Miniporttreiber diese OID verwendet, finden Sie unter Hinzufügen und Löschen von Low Power Protocol Offloads.
Der Miniporttreiber gibt einen der folgenden status Codes für die Anforderung zurück:
NDIS_STATUS_SUCCESS
Die angeforderte Protokollauslagerung wurde erfolgreich hinzugefügt. Das ProtocolOffloadId-Element der NDIS_PM_PROTOCOL_OFFLOAD-Struktur enthält einen Protokollauslagerungsbezeichner.
NDIS_STATUS_PENDING
Die Anforderung steht noch aus. NDIS übergibt den endgültigen status Code und ergebnisse an den OID-Anforderungsabschlusshandler des Aufrufers, nachdem die Anforderung abgeschlossen ist.
NDIS_STATUS_PM_PROTOCOL_OFFLOAD_LIST_FULL
Die Anforderung ist fehlgeschlagen, da die Protokollauslagerungsliste voll ist und der Netzwerkadapter keine weitere Protokollauslagerung hinzufügen kann.
NDIS_STATUS_RESOURCES
NDIS oder ein zugrunde liegender Netzwerkadapter konnte die neue Protokollauslagerung aufgrund fehlender Ressourcen nicht hinzufügen.
NDIS_STATUS_INVALID_PARAMETER
Mindestens ein Parameter in der NDIS_PM_PROTOCOL_OFFLOAD-Struktur war ungültig.
NDIS_STATUS_BUFFER_TOO_SHORT
Der Informationspuffer war zu kurz. NDIS legt die DATEN fest. SET_INFORMATION. BytesNeeded-Member in der NDIS_OID_REQUEST struktur auf die erforderliche Mindestpuffergröße.
NDIS_STATUS_NOT_SUPPORTED
Der Netzwerkadapter unterstützt die angeforderte Protokollauslagerung nicht.
NDIS_STATUS_FAILURE
Die Anforderung ist aus anderen Gründen als den oben genannten Gründen fehlgeschlagen.
Requirements (Anforderungen)
Version |
Unterstützt in NDIS 6.20 und höher. Obligatorisch für Miniporttreiber. |
Header |
Ntddndis.h (include Ndis.h) |
Weitere Informationen
NDIS_STATUS_PM_OFFLOAD_REJECTED