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 전송이 패킷이 수신된 인바운드 SA를 삭제하기 위해 OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA OID를 한 번 실행하고 삭제된 인바운드 SA에 해당하는 아웃바운드 SA를 다시 삭제해야 했음을 나타내는 ULONG 값입니다. NIC(네트워크 인터페이스 카드)는 해당 OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA 요청을 받기 전에 이러한 SAS 중 하나를 제거해서는 안 됩니다.
Receive.CryptoDone
설정된 경우 NIC가 수신 패킷에서 하나 이상의 IPsec 페이로드에 대해 IPsec 검사를 수행했음을 나타내는 ULONG 값입니다. 이 값이 지워지면 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 값과 동일한 값을 가집니다. 미니포트 드라이버가 OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA 요청에 응답할 때 모든 SAS가 NIC에 추가되었습니다.
미니포트 드라이버가 하나 이상의 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
피드백
다음에 대한 사용자 의견 제출 및 보기