estructura NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO (ndis.h)

La estructura NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO especifica información que se usa en la descarga de tareas de seguridad del protocolo de Internet (IPsec) desde el transporte TCP/IP a un controlador de miniporte.

Sintaxis

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;

Miembros

Transmit

Estructura que contiene los siguientes miembros:

Transmit.OffloadHandle

Identificador de la asociación de seguridad de salida (SA) para un paquete que tiene solo una carga IPsec, independientemente de si esa carga es para una conexión de transporte (de un extremo a otro) o una conexión de túnel.

Receive

Estructura que contiene los siguientes miembros:

Receive.SaDeleteReq

Un valor de USHORT que, cuando se establece, indica que el transporte TCP/IP debe emitir el OID_TCP_TASK_IPSEC_DELETE_SA OID una vez para eliminar la SA de entrada en la que se recibió el paquete y una vez más para eliminar la SA de salida que corresponde a la SA de entrada eliminada. La tarjeta de interfaz de red (NIC) no debe quitar ninguno de estos SAs antes de recibir la solicitud de OID_TCP_TASK_IPSEC_DELETE_SA correspondiente.

Receive.CryptoDone

Un valor de USHORT que, cuando se establece, indica que una NIC realizó la comprobación de IPsec al menos en una carga de IPsec en el paquete de recepción. Cuando se borra este valor, indica que la NIC no realizó la comprobación de IPsec en el paquete.

Receive.NextCryptoDone

Un valor de USHORT que, cuando se establece, indica que una NIC realizó la comprobación de IPsec tanto en el túnel como en las partes de transporte del paquete de recepción. CryptoDone también debe establecerse en este caso. NextCryptoDone solo se establece si un paquete tiene cargas IPsec de túnel y transporte; de lo contrario, NextCryptoDone se establece en cero.

Receive.Pad

Reservado para NDIS.

Receive.CryptoStatus

Resultado de la comprobación de IPsec de que una NIC se realiza en un paquete de recepción. Este resultado se puede describir como uno de los siguientes valores:

Valor Significado
CRYPTO_SUCCESS
El paquete se descifra correctamente, si es necesario, y las sumas de comprobación del encabezado de autenticación (AH), encapsulando las sumas de comprobación de carga de seguridad (ESP) o ambas sumas de comprobación del paquete se validaron.
CRYPTO_GENERIC_ERROR
El paquete produjo un error en la comprobación de IPsec por un motivo no especificado.
CRYPTO_TRANSPORT_AH_AUTH_FAILED
La suma de comprobación de AH para la parte de transporte del paquete no era válida.
CRYPTO_TRANSPORT_ESP_AUTH_FAILED
La suma de comprobación de ESP para la parte de transporte del paquete no era válida.
CRYPTO_TUNNEL_AH_AUTH_FAILED
La suma de comprobación de AH para la parte del túnel del paquete no era válida.
CRYPTO_TUNNEL_ESP_AUTH_FAILED
La suma de comprobación de ESP para la parte del túnel del paquete no era válida.
CRYPTO_INVALID_PACKET_SYNTAX
La longitud del paquete de recepción no es válida.
CRYPTO_INVALID_PROTOCOL
Los protocolos IPsec especificados en la SA en los que se recibió el paquete no coinciden con los protocolos IPsec que se encontraron en el paquete. Por ejemplo, este error se produce si la SA en la que se recibió el paquete especifica el protocolo AH, pero el paquete contenía solo un encabezado ESP.

Comentarios

Antes de que el transporte TCP/IP pase un paquete de envío en el que una NIC realizará tareas IPsec en el controlador de miniporte de la NIC, el transporte actualiza la información de IPsec en la estructura de NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO asociada a la estructura de NET_BUFFER_LIST .

En concreto, el transporte TCP/IP proporciona un valor para el miembro OffloadHandle en la estructura NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO . El valor OffloadHandle especifica el identificador de la asociación de seguridad de salida (SA) para un paquete que tiene una carga IPsec, independientemente de si esa carga es para una asociación de seguridad de transporte (de un extremo a otro) o una asociación de seguridad de túnel. El valor OffloadHandle que se proporciona en la estructura NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO tiene el mismo valor que el valor OffloadHandle que el transporte TCP/IP proporcionado al establecer OID_TCP_TASK_IPSEC_ADD_SA para solicitar al controlador de miniporte que agregue la SA de salida a la NIC.

Antes de que un controlador de minipuerto indique un paquete de recepción que tiene una o varias cargas IPsec, el controlador actualiza la estructura de NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO asociada a la estructura de NET_BUFFER_LIST de la siguiente manera:

  • Si la NIC realizó comprobaciones de IPsec en al menos una carga IPsec en el paquete, el controlador de minipuerto establece el miembro CryptoDone e indica los resultados de las pruebas de validación de suma de comprobación especificando el valor adecuado en el miembro CryptoStatus .
  • Si la NIC realizó la comprobación de IPsec tanto en el túnel como en las partes de transporte de un paquete de recepción, el controlador de minipuerto también establece el miembro NextCryptoDone . NextCryptoDone solo se establece si un paquete tiene cargas IPsec de túnel y transporte; de lo contrario, NextCryptoDone se establece en cero.
  • Si la NIC no realizó comprobaciones de IPsec en el paquete, el controlador de minipuerto no establece CryptoDone o NextCryptoDone y no proporciona un valor CryptoStatus .
Para crear espacio para otra SA en la NIC, el controlador de minipuerto de la NIC puede establecer SaDeleteReq en la estructura de NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO para un paquete de recepción. El transporte TCP/IP emite posteriormente OID_TCP_TASK_IPSEC_DELETE_SA una vez para eliminar la SA de entrada en la que se recibió el paquete y una vez más para eliminar la SA de salida que corresponde a la SA de entrada eliminada. La NIC no debe quitar ninguno de estos SAs antes de recibir la solicitud de OID_TCP_TASK_IPSEC_DELETE_SA correspondiente. El controlador de minipuerto de la NIC puede establecer SaDeleteReq independientemente de CryptoDone .

Para establecer y obtener la información de IPsec, use el índice IPsecOffloadV1NetBufferListInfo con la macro NET_BUFFER_LIST_INFO . NET_BUFFER_LIST_INFO devuelve la estructura NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO .

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.0. Para NDIS 6.1 y versiones posteriores, use NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO.
Encabezado ndis.h (incluya Ndis.h)

Consulte también

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