NDIS_TASK_IPSEC
When supplied by a miniport driver in response to a query of OID_TCP_TASK_OFFLOAD, the NDIS_TASK_IPSEC structure specifies the miniport driver's NIC's capabilities for performing IP Security tasks on packets. When passed to a miniport driver in a set of OID_TCP_TASK_OFFLOAD, the structure specifies the IP Security capabilities that the TCP/IP transport is enabling for the NIC.
typedef struct _NDIS_TASK_IPSEC
{
struct
{
ULONG AH_ESP_COMBINED;
ULONG TRANSPORT_TUNNEL_COMBINED;
ULONG V4_OPTIONS;
ULONG RESERVED;
} Supported;
struct
{
ULONG MD5:1;
ULONG SHA_1:1;
ULONG Transport:1;
ULONG Tunnel:1;
ULONG Send:1;
ULONG Receive:1;
} V4AH;
struct
{
ULONG DES:1;
ULONG RESERVED:1;
ULONG TRIPLE_DES:1;
ULONG NULL_ESP:1;
ULONG Transport:1;
ULONG Tunnel:1;
ULONG Send:1;
ULONG Receive:1;
} V4ESP;
} NDIS_TASK_IPSEC, *PNDIS_TASK_IPSEC;
Members
- AH_ESP_COMBINED
- Set by a miniport driver to indicate that its NIC can perform IP Security operations on send and receive packets that contain both an authentication header (AH) security payload and an encapsulating security payload (ESP). A value of zero indicates that the NIC does not support this capability.
Set by the TCP/IP transport to enable this capability.
- TRANSPORT_TUNNEL_COMBINED
- Set by a miniport driver to indicate that its NIC can process security payloads for both the transport-mode portion and the tunnel-mode portion of send and receive packets. (The transport-mode portion of a packet pertains to an end-to-end connection. The tunnel-mode portion of a packet pertains to a tunnel connection.) A value of zero indicates that the NIC does not support this capability.
Set by the TCP/IP transport to enable this capability.
- V4_OPTIONS
- Set by a miniport driver to indicate that its NIC can perform IP security operations on IPv4 send and receive packets whose IP header(s) contain IP options. A value of zero indicates that the NIC does not support this capability.
Set by the TCP/IP transport to enable this capability.
- RESERVED
- A miniport driver sets one or more of the following flags to indicate the types of UDP-encapsulated ESP data packets that its NIC can parse. For a description of the UDP-encapsulation types, see UDP-ESP Encapsulation Types.
- IPSEC_TPT_UDPESP_ENCAPTYPE_IKE
- Reserved.
- IPSEC_TUN_UDPESP_ENCAPTYPE_IKE
- Reserved.
- IPSEC_TPTOVERTUN_UDPESP_ENCAPTYPE_IKE
- Reserved.
- IPSEC_TPT_UDPESP_OVER_PURE_TUN_ENCAPTYPE_IKE
- Reserved.
- IPSEC_TPT_UDPESP_ENCAPTYPE_OTHER
- When set, indicates that the NIC can parse UDP-encapsulated transport-mode packets.
When cleared, indicates that the NIC does not have this capability.
- IPSEC_TUN_UDPESP_ENCAPTYPE_OTHER
- When set, indicates that the NIC can parse UDP-encapsulated tunnel-mode packets.
When cleared, indicates that the NIC does not have this capability.
- IPSEC_TPTOVERTUN_UDPESP_ENCAPTYPE_OTHER
- When set, indicates that the NIC can parse transport over UDP-encapsulated tunnel-mode packets.
When cleared, indicates that the NIC does not have this capability.
- IPSEC_TPT_UDPESP_OVER_PURE_TUN_ENCAPTYPE_OTHER
- When set, indicates that the NIC can parse UDP-encapsulated transport over tunnel-mode packets.
When cleared, indicates that the NIC does not have this capability.
- A miniport whose NIC is incapable of parsing UDP-encapsulated ESP packets must not set any flags in the Reserved member.
- V4AH
- MD5
- Set by a miniport driver to indicate that its NIC can use the keyed MD5 algorithm for computing and/or validating a cryptographic checksum for an AH payload and/or ESP payload. Set by the TCP/IP transport to enable this capability.
- SHA_1
- Set by a miniport driver to indicate that its NIC can use the SHA 1 algorithm for computing and/or validating a cryptographic checksum for an AH payload and/or ESP payload. Set by the TCP/IP transport to enable this capability.
- Transport
- Set by a miniport driver to indicate that its NIC can calculate and/or validate the cryptographic checksum(s) for the portion of a packet that pertains to an end-to-end connection. Set by the TCP/IP transport to enable this capability.
- Tunnel
- Set by a miniport driver to indicate that its NIC can calculate and/or validate cryptographic checksum(s) for the portion of a packet that pertains to a tunnel connection. Set by the TCP/IP transport to enable this capability.
- Send
- Set by a miniport driver to indicate that its NIC can calculate cryptographic checksum(s) for send packets. Set by the TCP/IP transport to enable this capability.
- Receive
- Set by a miniport driver to indicate that its NIC can validate cryptographic checksum(s) for receive packets. Set by the TCP/IP transport to enable this capability.
- V4ESP
- DES
- Set by a miniport driver to indicate that its NIC supports the DES algorithm for encrypting and decrypting ESP payloads. Set by the TCP/IP transport to enable this capability.
- RESERVED
- This is reserved.
- TRIPLE_DES
- Set by a miniport driver to indicate that its NIC supports the triple-DES algorithm for encrypting and decrypting ESP payloads. Set by the TCP/IP transport to enable this capability.
- NULL_ESP
- Set by a miniport driver to indicate that its NIC supports null encryption, which is the ESP payload without encryption but with authentication information. Set by the TCP/IP transport to enable this capability.
- Transport
- Set by a miniport driver to indicate that its NIC can encrypt and decrypt ESP data for the portion of a packet that pertains to an end-to-end connection. Set by the TCP/IP transport to enable this capability.
- Tunnel
- Set by a miniport driver to indicate that its NIC can encrypt and decrypt ESP data for the portion of a packet that pertains to a tunnel connection. Set by the TCP/IP transport to enable this capability.
- Send
- Set by a miniport driver to indicate that its NIC can encrypt and decrypt ESP payloads in send packets. Set by the TCP/IP transport to enable this capability.
- Receive
- Set by a miniport driver to indicate that its NIC can encrypt and decrypt ESP payloads in receive packets. Set by the TCP/IP transport to enable this capability.
Headers
Declared in ndis.h. Include ndis.h.
Comments
In response to a query of OID_TCP_TASK_OFFLOAD, a miniport driver returns in the InformationBuffer an NDIS_TASK_OFFLOAD_HEADER structure followed by one or NDIS_TASK_OFFLOAD structures. Each NDIS_TASK_OFFLOAD structure specifies a task-offload capability supported by the miniport driver's NIC.
When the Task member of the NDIS_TASK_OFFLOAD structure specifies IpSecNdisTask, the TaskBuffer of the NDIS_TASK_OFFLOAD structure contains an NDIS_TASK_IPSEC structure. When the NDIS_TASK_IPSEC structure is filled in by a miniport driver in response to the TCP/IP transport's query of OID_TCP_TASK_OFFLOAD, it specifies the miniport driver's NIC's capabilities for performing IP Security tasks on packets. When the NDIS_TASK_IPSEC structure is passed to a miniport driver through the TCP/IP transport's set of OID_TCP_TASK_OFFLOAD, it specifies the IP Security capabilities that the transport is enabling.
See Also
OID_TCP_TASK_OFFLOAD, NDIS_TASK_OFFLOAD, NDIS_TASK_OFFLOAD_HEADER