Freigeben über


NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO-Struktur (ndis.h)

Die NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO-Struktur gibt Informationen an, die beim Auslagern von IPsec-Tasks (Internet Protocol Security) vom TCP/IP-Transport an einen Miniporttreiber verwendet werden.

Syntax

typedef struct _NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO {
  union {
    struct {
      NDIS_HANDLE OffloadHandle;
    } Transmit;
    struct {
      USHORT SaDeleteReq : 1;
      USHORT CryptoDone : 1;
      USHORT NextCryptoDone : 1;
      USHORT Pad : 13;
      USHORT CryptoStatus;
    } Receive;
  };
} NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO, *PNDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO;

Member

Transmit

Eine Struktur, die die folgenden Member enthält:

Transmit.OffloadHandle

Ein Handle für die ausgehende Sicherheitszuordnung (Outbound Security Association, SA) für ein Paket mit nur einer IPsec-Nutzlast, unabhängig davon, ob diese Nutzlast für eine Transportverbindung (End-to-End)-Verbindung oder eine Tunnelverbindung bestimmt ist.

Receive

Eine Struktur, die die folgenden Member enthält:

Receive.SaDeleteReq

Ein USHORT-Wert, der bei Festlegung angibt, dass der TCP/IP-Transport das OID_TCP_TASK_IPSEC_DELETE_SA OID einmal, um die eingehende SA zu löschen, die das Paket empfangen wurde, und erneut, um die ausgehende SA zu löschen, die der gelöschten eingehenden SA entspricht. Die Netzwerkschnittstelle Karte (NIC) darf keine dieser SAs entfernen, bevor sie die entsprechende OID_TCP_TASK_IPSEC_DELETE_SA-Anforderung empfängt.

Receive.CryptoDone

Ein USHORT-Wert, der bei Festlegung angibt, dass eine NIC IPsec-Überprüfung für mindestens eine IPsec-Nutzlast im Empfangspaket ausgeführt hat. Wenn dieser Wert gelöscht wird, gibt dies an, dass die NIC keine IPsec-Überprüfung für das Paket durchgeführt hat.

Receive.NextCryptoDone

Ein USHORT-Wert, der bei Festlegung angibt, dass eine NIC IPsec-Überprüfung sowohl für den Tunnel- als auch für den Transportteil des Empfangspakets ausgeführt hat. CryptoDone muss auch in diesem Fall festgelegt werden. NextCryptoDone wird nur festgelegt, wenn ein Paket sowohl Tunnel- als auch Transport-IPsec-Nutzlasten aufweist. Andernfalls wird NextCryptoDone auf 0 festgelegt.

Receive.Pad

Reserviert für NDIS.

Receive.CryptoStatus

Das Ergebnis der IPsec-Überprüfung, die eine NIC für ein Empfangspaket ausgeführt hat. Dieses Ergebnis kann als einer der folgenden Werte beschrieben werden:

Wert Bedeutung
CRYPTO_SUCCESS
Das Paket wurde bei Bedarf erfolgreich entschlüsselt, und die AH-Prüfsummen (AH) zur Kapselung der Sicherheitsnutzlast (ESP) oder beide Prüfsummen im Paket wurden überprüft.
CRYPTO_GENERIC_ERROR
Das Paket hat die IPsec-Überprüfung aus einem nicht angegebenen Grund fehlgeschlagen.
CRYPTO_TRANSPORT_AH_AUTH_FAILED
Die AH-Prüfsumme für den Transportteil des Pakets war ungültig.
CRYPTO_TRANSPORT_ESP_AUTH_FAILED
Die ESP-Prüfsumme für den Transportteil des Pakets war ungültig.
CRYPTO_TUNNEL_AH_AUTH_FAILED
Die AH-Prüfsumme für den Tunnelteil des Pakets war ungültig.
CRYPTO_TUNNEL_ESP_AUTH_FAILED
Die ESP-Prüfsumme für den Tunnelteil des Pakets war ungültig.
CRYPTO_INVALID_PACKET_SYNTAX
Die Länge des Empfangspakets ist ungültig.
CRYPTO_INVALID_PROTOCOL
Die IPsec-Protokolle, die in der SA angegeben wurden, für die das Paket empfangen wurde, entsprechen nicht den IPsec-Protokollen, die im Paket gefunden wurden. Dieser Fehler tritt beispielsweise auf, wenn die SA, für die das Paket empfangen wurde, das AH-Protokoll angibt, das Paket jedoch nur einen ESP-Header enthielt.

Hinweise

Bevor der TCP/IP-Transport ein Sendepaket übergibt, das eine NIC IPsec-Aufgaben an den Miniporttreiber der NIC ausführt, aktualisiert der Transport die IPsec-Informationen in der NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO-Struktur , die der NET_BUFFER_LIST-Struktur zugeordnet ist.

Insbesondere stellt der TCP/IP-Transport einen Wert für das OffloadHandle-Element in der NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO-Struktur bereit. Der Wert OffloadHandle gibt das Handle für die ausgehende Sicherheitszuordnung (Outbound Security Association, SA) für ein Paket an, das nur über eine IPsec-Nutzlast verfügt, unabhängig davon, ob diese Nutzlast für eine Transportsicherheitszuordnung (End-to-End) oder eine Tunnelsicherheitszuordnung steht. Der OffloadHandle-Wert , der in der NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO-Struktur angegeben wird, hat den gleichen Wert wie der OffloadHandle-Wert , den der TCP/IP-Transport angegeben hat, als er OID_TCP_TASK_IPSEC_ADD_SA festgelegt hat, um den Miniporttreiber anzufordern, die ausgehende SA der NIC hinzuzufügen.

Bevor ein Miniporttreiber ein Empfangspaket mit mindestens einer IPsec-Nutzlast angibt, aktualisiert der Treiber die NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO Struktur, die der NET_BUFFER_LIST-Struktur zugeordnet ist, wie folgt:

  • Wenn die NIC IPsec-Überprüfungen für mindestens eine IPsec-Nutzlast im Paket ausgeführt hat, legt der Miniporttreiber das CryptoDone-Element fest und gibt die Ergebnisse der Überprüfungstests der Prüfsumme an, indem er den entsprechenden Wert im CryptoStatus-Member angibt.
  • Wenn die NIC IPsec-Überprüfung sowohl für den Tunnel als auch für den Transportteil eines Empfangspakets durchgeführt hat, legt der Miniporttreiber auch den NextCryptoDone-Member fest. NextCryptoDone wird nur festgelegt, wenn ein Paket sowohl Tunnel- als auch Transport-IPsec-Nutzlasten aufweist. Andernfalls wird NextCryptoDone auf 0 festgelegt.
  • Wenn die NIC keine IPsec-Überprüfungen für das Paket ausgeführt hat, legt der Miniporttreiber CryptoDone oder NextCryptoDone nicht fest und stellt keinen CryptoStatus-Wert bereit.
Um Speicherplatz für eine andere SA auf der NIC zu erstellen, kann der Miniporttreiber der NIC SaDeleteReq in der NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO-Struktur für ein Empfangspaket festlegen. Der TCP/IP-Transport gibt anschließend OID_TCP_TASK_IPSEC_DELETE_SA einmal aus, um die eingehende SA zu löschen, über die das Paket empfangen wurde, und erneut, um die ausgehende SA zu löschen, die der gelöschten eingehenden SA entspricht. Die NIC darf keine dieser SAs entfernen, bevor sie die entsprechende OID_TCP_TASK_IPSEC_DELETE_SA-Anforderung erhält. Der Miniporttreiber der NIC kann SaDeleteReq unabhängig von CryptoDone festlegen.

Um die IPsec-Informationen festzulegen und abzurufen, verwenden Sie den IPsecOffloadV1NetBufferListInfo-Index mit dem NET_BUFFER_LIST_INFO Makro. NET_BUFFER_LIST_INFO gibt die NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO-Struktur zurück.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0. Verwenden Sie für NDIS 6.1 und höher NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO.
Kopfzeile ndis.h (einschließlich Ndis.h)

Weitere Informationen

NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO

NET_BUFFER_LIST

NET_BUFFER_LIST_INFO

OID_TCP_TASK_IPSEC_ADD_SA

OID_TCP_TASK_IPSEC_DELETE_SA