OID_PM_ADD_PROTOCOL_OFFLOAD
Als Satz verwenden NDIS-Protokolltreiber die OID_PM_ADD_PROTOCOL_OFFLOAD OID, um einem Netzwerkadapter ein Protokoll offload 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öhere Protokolltreiber verwenden OID_PM_ADD_PROTOCOL_OFFLOAD OID, um einem Netzwerkadapter ein Protokoll offload für die Energieverwaltung hinzuzufügen. Wenn die Anforderung erfolgreich ist, muss der Netzwerkadapter die erforderlichen Antwortpakete für das offloaded-Protokoll generieren und übertragen, wenn sich der Netzwerkadapter in einem Energiesparzustand befindet.
Ein Protokolltreiber kann ein Protokoll auslagern, nachdem es erfolgreich eine Bindung an einen zugrunde liegenden Netzwerkadapter hergestellt hat und sobald er über die erforderlichen Daten verfügt (z. B. die IP-Adresse der Schnittstelle), um das Protokoll ausladen zu können. Der Protokolltreiber kann ein Protokoll auch als Reaktion auf einige andere Energieverwaltungsereignisbenachrichtigungen entladen, z. B. die Ablehnung eines zuvor hinzugefügten WOL-Musters oder eines entladenen Protokolls.
Um Rennbedingungen in NDIS und anderen Protokolltreibern zu vermeiden, die an denselben Miniportadapter gebunden sind, tritt nach dem Start von NDIS ein Netzwerkadapter auf einen Energiesparzustand auf, und es schlägt fehl, dass versucht wird, ein anderes Protokoll an diesen Netzwerkadapter zu entladen. Wenn beispielsweise ein NDIS-Protokolltreiber versucht, ein Protokoll im Kontext der Verarbeitung einer NetEventSetPower Ereignisbenachrichtigung für diesen Netzwerkadapter zu entladen, schlägt NDIS die Anforderung fehl.
Bevor NDIS diese OID-Anforderung an die zugrunde liegenden NDIS-Treiber sendet oder die Anforderung an den überlagernden Treiber abschließt, legt sie die ULONG-ProtocolOffloadId Member der NDIS_PM_PROTOCOL_OFFLOAD Struktur auf einen eindeutigen Wert fest. Protokolltreiber und NDIS verwenden diesen Protokollausladebezeichner mit der OID_PM_REMOVE_PROTOCOL_OFFLOAD OID-Anforderung, um das Protokoll offload vom zugrunde liegenden Netzwerkadapter zu entfernen.
Hinweis Der Protokoll-Offload-Bezeichner ist ein eindeutiger Wert für jedes Protokoll offloads, das auf einem Netzwerkadapter festgelegt ist. Der Protokoll-Offloadbezeichner ist jedoch nicht global für alle Netzwerkadapter eindeutig.
Wenn NDIS oder ein zugrunde liegender Netzwerkadapter einen Offload ablehnt, wird eine NDIS_STATUS_PM_OFFLOAD_REJECTED Statusanzeige generiert. Dies kann nach der Rückgabe NDIS_STATUS_SUCCESS für das OID auftreten. Das StatusBuffer- Mitglied der NDIS_STATUS_INDICATION-Struktur enthält den ULONG-Protokoll-Offloadbezeichner des abgelehnten Protokolloffloads.
Informationen dazu, wie ein nativer 802.11 Wireless LAN-Miniporttreiber diesen OID verwendet, finden Sie unter Hinzufügen und Löschen von Offloads für low Power Protocol offloads.
Der Miniporttreiber gibt einen der folgenden Statuscodes für die Anforderung zurück:
NDIS_STATUS_SUCCESS
Das angeforderte Protokoll-Offload wurde erfolgreich hinzugefügt. Das ProtocolOffloadId- Mitglied der NDIS_PM_PROTOCOL_OFFLOAD-Struktur enthält einen Protokoll-Offloadbezeichner.
NDIS_STATUS_PENDING
Die Anforderung steht aus. NDIS übergibt den endgültigen Statuscode und ergebnisse an den OID-Anforderungsabschlusshandler des Aufrufers, nachdem die Anforderung abgeschlossen ist.
NDIS_STATUS_PM_PROTOCOL_OFFLOAD_LIST_FULL
Fehler bei der Anforderung, da die Protokoll-Offloadliste voll ist und der Netzwerkadapter kein weiteres Protokoll offload hinzufügen kann.
NDIS_STATUS_RESOURCES
NDIS oder ein zugrunde liegender Netzwerkadapter konnte das neue Protokoll 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 DATA fest. SET_INFORMATION. BytesNeeded Member in der NDIS_OID_REQUEST Struktur auf die erforderliche Mindestpuffergröße.
NDIS_STATUS_NOT_SUPPORTED
Der Netzwerkadapter unterstützt das angeforderte Protokoll offload nicht.
NDIS_STATUS_FAILURE
Die Anforderung ist aus anderen Gründen als den vorherigen Gründen fehlgeschlagen.
Anforderungen
Version |
Unterstützt in NDIS 6.20 und höher. Obligatorisch für Miniporttreiber. |
Kopfball |
Ntddndis.h (include Ndis.h) |
Siehe auch
NDIS_STATUS_PM_OFFLOAD_REJECTED