NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO structure (ndis.h)

La structure NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO spécifie les informations utilisées dans le déchargement des tâches de sécurité du protocole Internet (IPsec) à partir du transport TCP/IP vers un pilote miniport.

Syntaxe

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;

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, que cette charge utile soit destinée à une connexion de transport (de bout en bout) ou à une connexion de tunnel.

Receive

Structure qui contient les membres suivants :

Receive.SaDeleteReq

Valeur USHORT qui, lorsqu’elle est définie, indique que le transport TCP/IP doit émettre le OID_TCP_TASK_IPSEC_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_DELETE_SA correspondante.

Receive.CryptoDone

Valeur USHORT 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 USHORT 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.Pad

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 :

Valeur Signification
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.
CRYPTO_GENERIC_ERROR
Le paquet a échoué le case activée IPsec pour une raison non spécifiée.
CRYPTO_TRANSPORT_AH_AUTH_FAILED
La somme de contrôle AH pour la partie transport du paquet n’était pas valide.
CRYPTO_TRANSPORT_ESP_AUTH_FAILED
La somme de contrôle ESP pour la partie transport du paquet n’était pas valide.
CRYPTO_TUNNEL_AH_AUTH_FAILED
La somme de contrôle AH pour la partie tunnel du paquet n’était pas valide.
CRYPTO_TUNNEL_ESP_AUTH_FAILED
La somme de contrôle ESP pour la partie tunnel du paquet n’était pas valide.
CRYPTO_INVALID_PACKET_SYNTAX
La longueur du paquet de réception n’est pas valide.
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 ne passe un paquet d’envoi sur lequel une carte réseau effectuera des tâches IPsec sur le pilote miniport de la carte réseau, le transport met à jour les informations IPsec dans la structure NDIS_IPSEC_OFFLOAD_V1_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_V1_NET_BUFFER_LIST_INFO . La valeur OffloadHandle spécifie le handle de l’association de sécurité sortante (SA) pour un paquet qui n’a qu’une seule charge utile IPsec, que cette charge utile soit destinée à une association de sécurité de transport (de bout en bout) ou à une association de sécurité de tunnel. La valeur OffloadHandle fournie dans la structure NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO a la même valeur que la valeur OffloadHandle fournie par le transport TCP/IP lorsqu’il a défini OID_TCP_TASK_IPSEC_ADD_SA pour demander au pilote miniport d’ajouter la SA sortante à la carte réseau.

Avant qu’un pilote miniport n’indique un paquet de réception qui a une ou plusieurs charges utiles IPsec, le pilote met à jour la structure NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO associée à la structure NET_BUFFER_LIST comme suit :

  • Si la carte réseau a effectué des vérifications IPsec sur au moins une charge utile IPsec dans le paquet, le pilote miniport définit le membre CryptoDone et indique les résultats des tests de validation de la somme de contrôle en spécifiant la valeur appropriée dans le membre CryptoStatus .
  • Si la carte réseau a effectué une vérification IPsec sur les parties tunnel et transport d’un paquet de réception, le pilote miniport définit également le membre NextCryptoDone . 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.
  • Si la carte réseau n’a pas effectué de vérifications IPsec sur le paquet, le pilote miniport ne définit pas CryptoDone ou NextCryptoDone et ne fournit pas de valeur CryptoStatus .
Pour créer de l’espace pour une autre SA sur la carte réseau, le pilote miniport de la carte réseau peut définir SaDeleteReq dans la structure NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO pour un paquet de réception. Le transport TCP/IP émet par la suite OID_TCP_TASK_IPSEC_DELETE_SA une fois pour supprimer l’ACCÈS entrant sur lequel le paquet a été reçu et une fois de plus pour supprimer l’accès partagé sortant qui correspond à l’AS entrante supprimée. La carte réseau ne doit pas supprimer l’une de ces autorités de sécurité avant de recevoir la demande de OID_TCP_TASK_IPSEC_DELETE_SA correspondante. Le pilote miniport de la carte réseau peut définir SaDeleteReq indépendamment de CryptoDone .

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

Configuration requise

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

Voir aussi

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