Compartir a través de


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 de 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 de 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

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 entrante en la que se recibió el paquete y una vez más para eliminar la SA saliente 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 en al menos 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 está establecido en cero.

Receive.Pad

Reservado para NDIS.

Receive.CryptoStatus

Resultado de la comprobación de IPsec de que una NIC se realizó 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), encapsular 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 esp de 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.

Observaciones

Antes de que el transporte TCP/IP pase un paquete de envío en el que una NIC realizará tareas de 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 de la estructura NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO. El offloadHandle valor especifica el identificador de la asociación de seguridad saliente (SA) para un paquete que tiene solo 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 de NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO tiene el mismo valor que el OffloadHandle que el transporte TCP/IP proporcionado al establecer OID_TCP_TASK_IPSEC_ADD_SA para solicitar al controlador de miniportar que agregue la SA saliente a la NIC.

Antes de que un controlador de miniporte indique un paquete de recepción con una o varias cargas de 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 de IPsec en el paquete, el controlador de miniporta 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 en las partes de túnel y transporte de un paquete de recepción, el controlador de miniporte 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 está establecido en cero.
  • Si la NIC no realizó comprobaciones de IPsec en el paquete, el controlador de miniport no establece CryptoDone ni NextCryptoDone y no proporciona un valor de cryptoStatus.
Para crear espacio para otra SA en la NIC, el controlador de miniporte 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 entrante en la que se recibió el paquete y una vez más para eliminar la SA saliente 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 miniporte de la NIC puede establecer SaDeleteReq independientemente de CryptoDone .

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

Requisitos

Requisito Valor
cliente mínimo admitido Compatible con NDIS 6.0. Para NDIS 6.1 y versiones posteriores, use NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO.
encabezado de 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