estrutura IPSEC_OFFLOAD_V2_ADD_SA_EX (ndis.h)
[O recurso de descarregamento de tarefas IPsec foi preterido e não deve ser usado.]
A estrutura IPSEC_OFFLOAD_V2_ADD_SA_EX define informações sobre uma SA (associação de segurança) que um driver de miniporte deve adicionar a uma NIC.
Sintaxe
typedef struct _IPSEC_OFFLOAD_V2_ADD_SA_EX {
NDIS_OBJECT_HEADER Header;
ULONG NumExtHdrs;
ULONG Flags;
union {
struct {
IPAddr SrcAddr;
IPAddr DestAddr;
} IPv4Endpoints;
struct {
UCHAR SrcAddr[16];
UCHAR DestAddr[16];
} IPv6Endpoints;
};
NDIS_HANDLE OffloadHandle;
ULONG UdpEspEncapsulation;
IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION SecAssoc[IPSEC_OFFLOAD_V2_MAX_EXTENSION_HEADERS];
ULONG KeyLength;
ULONG KeyOffset;
NDIS_SWITCH_PORT_ID SourceSwitchPortId;
USHORT VlanId;
} IPSEC_OFFLOAD_V2_ADD_SA_EX, *PIPSEC_OFFLOAD_V2_ADD_SA_EX;
Membros
Header
A estrutura NDIS_OBJECT_HEADER para a estrutura de IPSEC_OFFLOAD_V2_ADD_SA_EX. Defina o membro Type da estrutura especificada por Header como NDIS_OBJECT_TYPE_DEFAULT, o membro Revision como NDIS_IPSEC_OFFLOAD_V2_ADD_SA_EX_REVISION_1 e o membro Size como NDIS_SIZEOF_IPSEC_OFFLOAD_V2_ADD_SA_EX_REVISION_1.
NumExtHdrs
O número de cabeçalhos de extensão IPsec. Esse membro pode ser um dos valores a seguir.
Tipo de segurança | Cabeçalhos de extensão |
---|---|
Somente autenticação AH | 1 |
Somente autenticação ESP | 1 |
Somente criptografia ESP | 1 |
Autenticação ESP mais criptografia | 1 |
Autenticação AH mais ESP mais criptografia | 2 |
UDP ESP | 1 |
Flags
Uma máscara de bits que indica se a SA que está sendo adicionada é uma SA de entrada ou saída da seguinte maneira:
IPSEC_OFFLOAD_V2_IPv6
Se esse sinalizador estiver definido, os endereços serão IPv6. Caso contrário, os endereços são IPv4
IPSEC_OFFLOAD_V2_INBOUND
Se esse sinalizador estiver definido, a SA será de entrada. Caso contrário, a SA será de saída.
IPv4Endpoints
Os endereços de ponto de extremidade IPv4. Essa estrutura contém os seguintes membros:
IPv4Endpoints.SrcAddr
O endereço IPv4 do host de origem (o host que está enviando os pacotes).
IPv4Endpoints.DestAddr
O endereço IPv4 do host de destino (o host que está recebendo os pacotes).
IPv6Endpoints
Os endereços de ponto de extremidade IPv6. Essa estrutura contém os seguintes membros:
IPv6Endpoints.SrcAddr[16]
O endereço IPv6 do host de origem (o host que está enviando os pacotes).
IPv6Endpoints.DestAddr[16]
O endereço IPv6 do host de destino (o host que está recebendo os pacotes).
OffloadHandle
O identificador para a SA recém-criada. O driver de miniporte fornece esse identificador antes de concluir o
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX solicitação. O transporte TCP/IP deve especificar esse identificador no
NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO ou NDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFO estrutura antes de passar um pacote de envio para o driver de miniport. O transporte TCP/IP também deve especificar esse identificador ao excluir a SA com um OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA solicitação.
UdpEspEncapsulation
O tipo de encapsulamento UDP ESP. Esse membro pode ser um ou mais dos seguintes sinalizadores:
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_NONE
Nenhum encapsulamento UDP é usado.
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT
Um pacote de modo de transporte encapsulado por ESP é encapsulado pelo UDP.
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TUNNEL
A parte do modo de túnel de um pacote é encapsulada por UDP. A parte do modo de transporte do pacote não é encapsulada por UDP e não é protegida por ESP.
IPSEC_OFFLOAD_V2_TRANSPORT_OVER_UDP_ESP_ENCAPSULATION_TUNNEL
A parte do modo de túnel de um pacote é encapsulada por UDP. A parte do modo de transporte de um pacote não é encapsulada por UDP, mas é protegida por ESP.
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT_OVER_TUNNEL
A parte do modo de túnel de um pacote não é encapsulada por UDP. A parte do modo de transporte de um pacote é encapsulada por UDP e protegida por ESP.
SecAssoc[IPSEC_OFFLOAD_V2_MAX_EXTENSION_HEADERS]
Uma matriz com dois elementos que contêm as informações sobre as operações IPsec (AH, ESP ou ambos) para a SA. O número de elementos fornecidos é especificado no membro NumExtHdrs . As informações para cada operação IPsec são formatadas como um IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION estrutura, que é descrita abaixo.
O transporte TCP/IP especifica uma ou duas estruturas IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION no buffer em SecAssoc . Cada estrutura IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION indica o tipo de operação – autenticação ou criptografia/descriptografia – para o qual a SA especificada na estrutura deve ser usada. A ordem das estruturas de IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION na matriz indica a ordem em que o driver de miniporto deve executar as operações para cada SA. Há suporte apenas para uma combinação de operações: criptografia/descriptografia (ESP) seguida por AH (autenticação).
KeyLength
O comprimento, em bytes, do buffer em KeyOffset.
KeyOffset
O deslocamento, em bytes, desde o início da estrutura IPSEC_OFFLOAD_V2_ADD_SA_EX até o início de uma matriz de comprimento variável que contém chaves para a SA especificada em SecAssoc. Se um algoritmo de criptografia e um algoritmo de autenticação forem especificados pelos membros EncryptionAlgorithm e AuthenticationAlgorithm de um IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION estrutura, o buffer em KeyOffset contém informações de chave para um seguido pelo outro. O início e o comprimento da chave são especificados pelo IPSEC_OFFLOAD_V2_ALGORITHM_INFO os membros KeyOffsetBytes e KeyLength da estrutura, respectivamente.
SourceSwitchPortId
Reservado.
VlanId
Reservado.
Comentários
A estrutura IPSEC_OFFLOAD_V2_ADD_SA_EX especifica uma SA de segurança que deve ser adicionada. A estrutura IPSEC_OFFLOAD_V2_ADD_SA_EX é usada com o
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX OID.
A estrutura IPSEC_OFFLOAD_V2_ADD_SA_EX especifica a origem e o destino, bem como os protocolos IP aos quais a SA se aplica. Esse filtro pertence a uma conexão de modo de transporte, ou seja, uma conexão de ponta a ponta entre dois hosts. Se a conexão especificada for feita por meio de um túnel, os endereços de origem e de destino do túnel serão especificados.
Se um membro for definido como zero, esse parâmetro não será usado para filtrar pacotes para a SA especificada. Por exemplo, se SrcAddr estiver definido como zero, a SA especificada poderá ser aplicada a um pacote que contenha qualquer endereço de origem. Se todos os parâmetros de filtro forem definidos como zero, a SA especificada se aplicará a qualquer host de origem que esteja enviando qualquer tipo de pacote para qualquer host de destino.
Essa estrutura é quase idêntica à versão anterior, IPSEC_OFFLOAD_V2_ADD_SA. Os membros Next e KeyData foram removidos. Os membros KeyOffset, SourceSwitchPortId e VlanId foram adicionados.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.30 e posterior. |
Cabeçalho | ndis.h (inclua Ndis.h) |