NDIS_PM_PROTOCOL_OFFLOAD-Struktur (ntddndis.h)

Die NDIS_PM_PROTOCOL_OFFLOAD-Struktur gibt Parameter für eine Protokollauslagerung mit geringem Stromverbrauch an einen Netzwerkadapter an.

Syntax

typedef struct _NDIS_PM_PROTOCOL_OFFLOAD {
  NDIS_OBJECT_HEADER            Header;
  ULONG                         Flags;
  ULONG                         Priority;
  NDIS_PM_PROTOCOL_OFFLOAD_TYPE ProtocolOffloadType;
  NDIS_PM_COUNTED_STRING        FriendlyName;
  ULONG                         ProtocolOffloadId;
  ULONG                         NextProtocolOffloadOffset;
  union {
    struct {
      ULONG Flags;
      UCHAR RemoteIPv4Address[4];
      UCHAR HostIPv4Address[4];
      UCHAR MacAddress[6];
    } IPv4ARPParameters;
    struct {
      ULONG Flags;
      UCHAR RemoteIPv6Address[16];
      UCHAR SolicitedNodeIPv6Address[16];
      UCHAR MacAddress[6];
      UCHAR TargetIPv6Addresses[2][16];
    } IPv6NSParameters;
    struct {
      ULONG     Flags;
      UCHAR     KCK[DOT11_RSN_KCK_LENGTH];
      UCHAR     KEK[DOT11_RSN_KEK_LENGTH];
      ULONGLONG KeyReplayCounter;
    } Dot11RSNRekeyParameters;
    struct {
      ULONG     Flags;
      ULONGLONG KeyReplayCounter;
      ULONG     AuthAlgo;
      ULONG     KCKLength;
      ULONG     KEKLength;
      UCHAR     KCK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH];
      UCHAR     KEK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH];
    } Dot11RSNRekeyParametersV2;
  } ProtocolOffloadParameters;
  _PROTOCOL_OFFLOAD_PARAMETERS  _PROTOCOL_OFFLOAD_PARAMETERS;
} NDIS_PM_PROTOCOL_OFFLOAD, *PNDIS_PM_PROTOCOL_OFFLOAD;

Member

Header

Die NDIS_OBJECT_HEADER-Struktur für die NDIS_PM_PROTOCOL_OFFLOAD-Struktur . Der Treiber legt den Typmember auf NDIS_OBJECT_TYPE_DEFAULT fest.

Um die Version der NDIS_PM_PROTOCOL_OFFLOAD-Struktur anzugeben, legen Sie den Revisionsmember von Header auf einen der folgenden Werte fest:

NDIS_PM_PROTOCOL_OFFLOAD_REVISION_2

Die Dot11RSNRekeyParametersV2-Struktur für NDIS 6.84 wurde hinzugefügt.

Legen Sie das Element Größe auf NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_2 fest.

NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1

Originalversion für NDIS 6.20 und höher.

Legen Sie das Element Größe auf NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1 fest.

Flags

Ein ULONG-Wert, der ein bitweises OR von Flags enthält. Dieser Member ist für NDIS reserviert.

Priority

Ein ULONG-Wert, der die Priorität der Protokollauslagerung enthält. Wenn ein überlagernder Treiber eine Protokollauslagerung mit höherer Priorität hinzufügt, wenn keine Ressourcen für weitere Protokollauslagerungen verfügbar sind, entfernt NDIS möglicherweise eine Protokollauslagerung mit niedrigerer Priorität, um Ressourcen freizugeben. Miniport-Treiber sollten dieses Element ignorieren. Protokolltreiber können einen beliebigen Wert innerhalb des vordefinierten Bereichs bereitstellen. Die folgenden Werte sind vordefiniert:

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST

Gibt die Protokollauslagerung mit der niedrigsten Priorität an.

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_NORMAL

Gibt eine normale Protokollauslagerung mit Priorität an.

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST

Gibt die Protokollauslagerung mit der höchsten Priorität an.

ProtocolOffloadType

Eine NDIS_PM_PROTOCOL_OFFLOAD_TYPE Wert, der den Typ der Protokollauslagerung enthält.

FriendlyName

Eine NDIS_PM_COUNTED_STRING-Struktur , die die benutzerlesbare Beschreibung der Protokollauslagerung mit geringer Leistung enthält.

ProtocolOffloadId

Ein ULONG-Wert, der einen von NDIS bereitgestellten Wert enthält, der das ausgeladene Protokoll identifiziert. Bevor NDIS die OID_PM_ADD_PROTOCOL_OFFLOAD OID-Anforderung an die zugrunde liegenden NDIS-Treiber sendet oder die Anforderung an den überlagernden Treiber abschließt, legt NDIS ProtocolOffloadId auf einen Wert fest, der unter den Protokollauslagerungen auf einem Netzwerkadapter eindeutig ist.

NextProtocolOffloadOffset

Ein ULONG-Wert, der einen Offset in Bytes enthält. Das NextProtocolOffloadOffset-Element jeder NDIS_PM_PROTOCOL_OFFLOAD-Struktur in einer Liste wird auf den Offset (vom Anfang der OID-Anforderung InformationBuffer) der nächsten NDIS_PM_PROTOCOL_OFFLOAD-Struktur in der Liste festgelegt. Wenn NextProtocolOffloadOffset null ist, ist die aktuelle Struktur die letzte Struktur in der Liste.

ProtocolOffloadParameters

Eine Union, die die folgenden Memberstrukturen enthält:

ProtocolOffloadParameters.IPv4ARPParameters

Eine Struktur, die IPv4-ARP-Parameter enthält. Diese Struktur enthält die folgenden Member:

ProtocolOffloadParameters.IPv4ARPParameters.Flags

Ein ULONG-Wert , der ein bitweises OR von Flags enthält. Dieser Member ist für NDIS reserviert.

ProtocolOffloadParameters.IPv4ARPParameters.RemoteIPv4Address[4]

Ein UCHAR-Array , das eine optionale IPv4-Adresse enthält. Diese Adresse stellt das Feld Source Protocol Address (SPA) der ARP-Anforderung dar.

Wenn die eingehende ARP-Anforderung einen SPA-Wert aufweist, der mit dieser IPv4-Adresse übereinstimmt, sendet der Netzwerkadapter eine ARP-Antwort, wenn er sich in einem Energiesparzustand befindet. Wenn dieser Member null ist, sollte der Netzwerkadapter auf ARP-Anforderungen von einer beliebigen IPv4-Remoteadresse reagieren.

Weitere Informationen zum ARP-Protokoll finden Sie unter RFC 826.

ProtocolOffloadParameters.IPv4ARPParameters.HostIPv4Address[4]

Ein UCHAR-Array , das die IPv4-Adresse enthält. Wenn die ARP-Antwort gesendet wird, verwendet der Netzwerkadapter diesen Member für das SPA-Feld der Antwort.

ProtocolOffloadParameters.IPv4ARPParameters.MacAddress[6]

Ein UCHAR-Array , das eine MAC-Adresse (Media Access Control) enthält. Der Netzwerkadapter verwendet diese MAC-Adresse für das Feld Quellhardwareadresse (SHA) des ARP-Antwortpakets, das er generiert.

Hinweis Wenn eine ARP-Antwort gesendet wird, muss der Netzwerkadapter immer diese MAC-Adresse in der ARP-Nutzlast verwenden. Es sollte jedoch die aktuelle MAC-Adresse des Netzwerkadapters als Quelladresse im MAC-Header verwenden.
 

ProtocolOffloadParameters.IPv6NSParameters

Eine Struktur, die NS-Parameter (IPv6 Neighbor Solicitation) enthält. Diese Struktur enthält die folgenden Member:

ProtocolOffloadParameters.IPv6NSParameters.Flags

Ein ULONG-Wert , der ein bitweises OR von Flags enthält. Dieser Member ist für NDIS reserviert.

ProtocolOffloadParameters.IPv6NSParameters.RemoteIPv6Address[16]

Ein UCHAR-Array , das eine optionale IPv6-Adresse enthält. Diese Adresse stellt das Feld Quelladresse im IPv6-Header der NS-Nachricht dar.

Wenn die eingehende NS-Nachricht einen Quelladressenwert aufweist, der mit dieser IPv6-Adresse übereinstimmt, sendet der Netzwerkadapter eine Nachbarankündigungsnachricht (NA), wenn er sich in einem Energiesparzustand befindet. Wenn dieser Member null ist, sollte der Netzwerkadapter auf NS-Nachrichten von einer beliebigen IPv6-Remoteadresse reagieren.

Weitere Informationen zu IPv6-NS- und NA-Nachrichten finden Sie unter RFC 4861.

ProtocolOffloadParameters.IPv6NSParameters.SolicitedNodeIPv6Address[16]

Ein UCHAR-Array , das die angeforderte IPv6-Adresse des Knotens enthält. Weitere Informationen zu diesem Typ von IPv6-Adressen finden Sie unter Multicast-IPv6-Adressen.

ProtocolOffloadParameters.IPv6NSParameters.MacAddress[6]

Ein UCHAR-Array , das die MAC-Adresse enthält. Wenn die NA-Nachricht gesendet wird, verwendet der Netzwerkadapter dieses Array für das TLLA-Feld (Target Link Layer Address) der NA-Nachricht.

Hinweis Wenn eine NA-Nachricht gesendet wird, muss der Netzwerkadapter immer diese MAC-Adresse im TLLA-Feld der NA-Nachricht verwenden. Es sollte jedoch die aktuelle MAC-Adresse des Netzwerkadapters als Quelladresse im MAC-Header verwenden.
 

ProtocolOffloadParameters.IPv6NSParameters.TargetIPv6Addresses[2]

Ein UCHAR-Array , das eine oder zwei IPv6-Adressen enthält. Wenn sie nur eine Adresse enthält, wird diese Adresse im ersten Element im Array gespeichert, und das zweite Element wird mit Nullen gefüllt.

Miniporttreiber müssen alle Adressen im Array nutzen.

Diese Adressen stellen das Feld Zieladresse einer NS-Nachricht dar. Wenn eine dieser Adressen mit dem Feld Zieladresse einer eingehenden NS-Nachricht übereinstimmt, sendet der Netzwerkadapter als Antwort eine NA-Nachricht.

ProtocolOffloadParameters.Dot11RSNRekeyParameters

Eine Struktur, die IEEE 802.11i Robust Security Network (RSN)-Handshakeparameter enthält. Diese Struktur enthält die folgenden Member:

ProtocolOffloadParameters.Dot11RSNRekeyParameters.Flags

Ein ULONG-Wert , der ein bitweises OR von Flags enthält. Dieser Member ist für NDIS reserviert.

ProtocolOffloadParameters.Dot11RSNRekeyParameters.KCK[DOT11_RSN_KCK_LENGTH]

Ein UCHAR-Array , das einen IEEE 802.11-Schlüsselbestätigungsschlüssel (KCK) enthält.

ProtocolOffloadParameters.Dot11RSNRekeyParameters.KEK[DOT11_RSN_KEK_LENGTH]

Ein UCHAR-Array , das einen IEEE 802.11-Schlüsselverschlüsselungsschlüssel (KEK) enthält.

ProtocolOffloadParameters.Dot11RSNRekeyParameters.KeyReplayCounter

Ein ULONGLONG-Wert , der einen Wiedergabezähler enthält.

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2

Eine Struktur, die V2 IEEE 802.11i Robust Security Network (RSN)-Handshakeparameter enthält. Verfügbar in NDIS 6.84 und höher. Diese Struktur enthält die folgenden Member:

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.Flags

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KeyReplayCounter

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.AuthAlgo

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KCKLength

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KEKLength

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KCK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH]

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KEK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH]

_PROTOCOL_OFFLOAD_PARAMETERS

Hinweise

Die NDIS_PM_PROTOCOL_OFFLOAD-Struktur wird in den OID_PM_ADD_PROTOCOL_OFFLOAD und OID_PM_PROTOCOL_OFFLOAD_LIST Oids.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.20 und höher.
Kopfzeile ntddndis.h (include Ntddndis.h)

Weitere Informationen

NDIS_OBJECT_HEADER

NDIS_PM_COUNTED_STRING

NDIS_PM_PROTOCOL_OFFLOAD_TYPE

OID_PM_ADD_PROTOCOL_OFFLOAD

OID_PM_PROTOCOL_OFFLOAD_LIST