NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO 구조체(ndis.h)

[IPsec 작업 오프로드 기능은 더 이상 사용되지 않으며 사용해서는 안 됩니다.]

NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO 구조는 TCP/IP 전송에서 NIC로 인터넷 프로토콜 보안 오프로드 버전 2(IPsecOV2) 작업을 오프로드하는 데 사용되는 정보를 지정합니다.

구문

typedef struct _NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO {
  union {
    struct {
      PVOID OffloadHandle;
    } Transmit;
    struct {
      ULONG SaDeleteReq : 1;
      ULONG CryptoDone : 1;
      ULONG NextCryptoDone : 1;
      ULONG Reserved : 13;
      ULONG CryptoStatus : 16;
    } Receive;
  };
} NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO, *PNDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO;

멤버

Transmit

다음 멤버를 포함하는 구조체입니다.

Transmit.OffloadHandle

전송(엔드투엔드) 연결에 대한 IPsec 페이로드가 하나만 있는 패킷에 대한 SA(아웃바운드 보안 연결)에 대한 핸들입니다.

Receive

다음 멤버를 포함하는 구조체입니다.

Receive.SaDeleteReq

설정된 경우 TCP/IP 전송이 를 발급해야 했음을 나타내는 ULONG 값입니다. OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA OID는 패킷이 수신된 인바운드 SA를 한 번 삭제하고 다시 한 번 삭제된 인바운드 SA에 해당하는 아웃바운드 SA를 삭제합니다. NIC(네트워크 인터페이스 카드)는 해당 OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA 요청을 받기 전에 이러한 SAS 중 하나를 제거해서는 안 됩니다.

Receive.CryptoDone

ULONG 값은 설정 시 NIC가 수신 패킷에서 하나 이상의 IPsec 페이로드에 대해 IPsec 검사를 수행했음을 나타냅니다. 이 값이 지워지면 NIC가 패킷에 대해 IPsec 검사를 수행하지 않았음을 나타냅니다.

Receive.NextCryptoDone

설정된 경우 NIC가 수신 패킷의 터널 및 전송 부분 모두에서 IPsec 검사를 수행했음을 나타내는 ULONG 값입니다. CryptoDone 도 이 경우에 설정해야 합니다. NextCryptoDone 은 패킷에 터널 및 전송 IPsec 페이로드가 모두 있는 경우에만 설정됩니다. 그렇지 않으면 NextCryptoDone 이 0으로 설정됩니다.

Receive.Reserved

NDIS용으로 예약되었습니다.

Receive.CryptoStatus

수신 패킷에서 NIC가 수행했는지 IPsec이 확인한 결과입니다. 이 결과는 다음 값 중 하나로 설명될 수 있습니다.

CryptoStatus.CRYPTO_SUCCESS

필요한 경우 패킷의 암호가 성공적으로 해독되었으며 AH(인증 헤더) 체크섬, ESP(보안 페이로드) 체크섬 캡슐화 또는 패킷의 두 체크섬의 유효성이 검사되었습니다.

CryptoStatus.CRYPTO_GENERIC_ERROR

패킷이 지정되지 않은 이유로 IPsec 검사 실패했습니다.

CryptoStatus.CRYPTO_TRANSPORT_AH_AUTH_FAILED

패킷의 전송 부분에 대한 AH 체크섬이 잘못되었습니다.

CryptoStatus.CRYPTO_TRANSPORT_ESP_AUTH_FAILED

패킷의 전송 부분에 대한 ESP 체크섬이 잘못되었습니다.

CryptoStatus.CRYPTO_TUNNEL_AH_AUTH_FAILED

패킷의 터널 부분에 대한 AH 체크섬이 잘못되었습니다.

CryptoStatus.CRYPTO_TUNNEL_ESP_AUTH_FAILED

패킷의 터널 부분에 대한 ESP 체크섬이 잘못되었습니다.

CryptoStatus.CRYPTO_INVALID_PACKET_SYNTAX

수신 패킷의 길이가 잘못되었습니다. 예를 들어 IP 헤더의 총 길이만으로는 AH/ESP에 대한 모든 필드와 헤더를 포함하기에 충분하지 않습니다.

CryptoStatus.CRYPTO_INVALID_PROTOCOL

패킷이 수신된 SA에 지정된 IPsec 프로토콜은 패킷에 있는 IPsec 프로토콜과 일치하지 않습니다. 예를 들어 패킷이 수신된 SA가 AH 프로토콜을 지정하지만 패킷에 ESP 헤더만 포함된 경우 이 오류가 발생합니다.

설명

TCP/IP 전송이 오프로드 처리를 위해 아웃바운드 패킷을 NIC에 전달하기 전에 전송은 NET_BUFFER_LIST 구조와 연결된 NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO 구조체의 IPsec 정보를 지정합니다.

특히 TCP/IP 전송은 NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO 구조에서 OffloadHandle 멤버에 대한 값을 제공합니다. OffloadHandle 값은 전송 또는 터널 SA용 페이로드인지 여부에 관계없이 하나의 IPsec 페이로드가 있는 패킷에 대한 아웃바운드 SA에 대한 핸들을 지정합니다. NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO 구조에 제공된 OffloadHandle 값은 미니포트 드라이버가 NIC에 SA 집합을 성공적으로 추가했을 때 TCP/IP 전송에 보고된 OffloadHandle 값과 동일한 값을 가집니다. 미니포트 드라이버가 에 응답할 때 모든 SAS가 NIC에 추가되었습니다. OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA 요청입니다.

미니포트 드라이버가 하나 이상의 IPsec 페이로드가 있는 수신 패킷을 나타내기 전에 드라이버는 NET_BUFFER_LIST 구조와 연결된 NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO 구조에서 IPsec 정보를 지정합니다.

IPsec 정보를 설정하고 가져오려면 NET_BUFFER_LIST_INFO 매크로와 함께 IPsecOffloadV2NetBufferListInfo 인덱스를 사용합니다. NET_BUFFER_LIST_INFO NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO 구조를 반환합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.1 이상에서 지원됩니다.
머리글 ndis.h(Ndis.h 포함)

추가 정보

NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO

NET_BUFFER_LIST

NET_BUFFER_LIST_INFO

OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA