NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO structure (ndis.h)

[La fonctionnalité de déchargement de tâche IPsec est déconseillée et ne doit pas être utilisée.]

La structure NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO spécifie les informations utilisées dans le déchargement des tâches de déchargement de sécurité du protocole Internet version 2 (IPsecOV2) du transport TCP/IP vers une carte réseau.

Syntaxe

typedef struct _NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO {
  union {
    struct {
      PVOID OffloadHandle;
    } Transmit;
    struct {
      ULONG SaDeleteReq : 1;
      ULONG CryptoDone : 1;
      ULONG NextCryptoDone : 1;
      ULONG Reserved : 13;
      ULONG CryptoStatus : 16;
    } Receive;
  };
} NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO, *PNDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO;

Membres

Transmit

Structure qui contient les membres suivants :

Transmit.OffloadHandle

Handle vers l’association de sécurité sortante (SA) pour un paquet qui n’a qu’une seule charge utile IPsec pour une connexion de transport (de bout en bout).

Receive

Structure qui contient les membres suivants :

Receive.SaDeleteReq

Valeur ULONG qui, lorsqu’elle est définie, indique que le transport TCP/IP doit émettre le OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA OID une fois pour supprimer l’AS entrante sur laquelle le paquet a été reçu et une fois de plus pour supprimer la SA sortante qui correspond à la SA entrante supprimée. La carte d’interface réseau (NIC) ne doit pas supprimer l’une de ces autorités de sécurité avant de recevoir la demande de OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA correspondante.

Receive.CryptoDone

Valeur ULONG qui, lorsqu’elle est définie, indique qu’une carte réseau a effectué une vérification IPsec sur au moins une charge utile IPsec dans le paquet de réception. Lorsque cette valeur est effacée, elle indique que la carte réseau n’a pas effectué de vérification IPsec sur le paquet.

Receive.NextCryptoDone

Valeur ULONG qui, lorsqu’elle est définie, indique qu’une carte réseau a effectué une vérification IPsec sur les parties tunnel et transport du paquet de réception. CryptoDone doit également être défini dans ce cas. NextCryptoDone est défini uniquement si un paquet a à la fois des charges utiles IPsec de tunnel et de transport ; sinon, NextCryptoDone est défini sur zéro.

Receive.Reserved

Réservé pour NDIS.

Receive.CryptoStatus

Résultat de la vérification par IPsec qu’une carte réseau s’est exécutée sur un paquet de réception. Ce résultat peut être décrit comme l’une des valeurs suivantes :

CryptoStatus.CRYPTO_SUCCESS

Le paquet a été correctement déchiffré, si nécessaire, et les sommes de contrôle de l’en-tête d’authentification (AH), encapsulant les sommes de contrôle ESP (Security Payload), ou les deux sommes de contrôle dans le paquet ont été validées.

CryptoStatus.CRYPTO_GENERIC_ERROR

Le paquet a échoué le case activée IPsec pour une raison non spécifiée.

CryptoStatus.CRYPTO_TRANSPORT_AH_AUTH_FAILED

La somme de contrôle AH pour la partie transport du paquet n’était pas valide.

CryptoStatus.CRYPTO_TRANSPORT_ESP_AUTH_FAILED

La somme de contrôle ESP pour la partie transport du paquet n’était pas valide.

CryptoStatus.CRYPTO_TUNNEL_AH_AUTH_FAILED

La somme de contrôle AH pour la partie tunnel du paquet n’était pas valide.

CryptoStatus.CRYPTO_TUNNEL_ESP_AUTH_FAILED

La somme de contrôle ESP pour la partie tunnel du paquet n’était pas valide.

CryptoStatus.CRYPTO_INVALID_PACKET_SYNTAX

La longueur du paquet de réception n’est pas valide. Par exemple, la longueur totale dans l’en-tête IP n’est pas suffisante pour inclure tous les champs et en-têtes pour AH/ESP.

CryptoStatus.CRYPTO_INVALID_PROTOCOL

Les protocoles IPsec spécifiés dans l’AS sur lequel le paquet a été reçu ne correspondent pas aux protocoles IPsec trouvés dans le paquet. Par exemple, cette erreur se produit si l’AS sur laquelle le paquet a été reçu spécifie le protocole AH, mais que le paquet ne contenait qu’un en-tête ESP.

Remarques

Avant que le transport TCP/IP passe un paquet sortant à une carte réseau pour le traitement du déchargement, le transport spécifie les informations IPsec dans la structure NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO associée à la structure NET_BUFFER_LIST .

Plus précisément, le transport TCP/IP fournit une valeur pour le membre OffloadHandle dans la structure NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO. La valeur OffloadHandle spécifie le handle de la SA sortante pour un paquet qui n’a qu’une seule charge utile IPsec, que cette charge utile soit destinée à une SA de transport ou à une SA de tunnel. La valeur OffloadHandle fournie dans la structure NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO a la même valeur que la valeur OffloadHandle qui a été signalée au transport TCP/IP lorsque le pilote miniport a correctement ajouté un ensemble d’autorités de sécurité à une carte réseau. Toutes les autorités de sécurité ont été ajoutées à la carte réseau lorsque le pilote miniport a répondu à un OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA demande.

Avant qu’un pilote miniport n’indique un paquet de réception contenant une ou plusieurs charges utiles IPsec, le pilote spécifie des informations IPsec dans la structure NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO associée à la structure NET_BUFFER_LIST .

Pour définir et obtenir les informations IPsec, utilisez l’index IPsecOffloadV2NetBufferListInfo avec la macro NET_BUFFER_LIST_INFO . NET_BUFFER_LIST_INFO retourne la structure NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.1 et versions ultérieures.
En-tête ndis.h (inclure Ndis.h)

Voir aussi

NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO

NET_BUFFER_LIST

NET_BUFFER_LIST_INFO

OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA