Share via


NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO 구조체(ndis.h)

NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO 구조에는 캡슐화된 패킷에 대한 추가 대역 외 정보가 포함되어 있습니다. 자세한 내용은 NVGRE(일반 라우팅 캡슐화를 사용한 네트워크 가상화) 작업 오프로드(NVGRE-TO )를 참조하세요.

구문

typedef struct _NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO {
  union {
    struct {
      ULONG IsEncapsulatedPacket : 1;
      ULONG EncapsulatedPacketOffsetsValid : 1;
      ULONG InnerFrameOffset : 8;
      ULONG TransportIpHeaderRelativeOffset : 6;
      ULONG TcpHeaderRelativeOffset : 10;
      ULONG IsInnerIPv6 : 1;
      ULONG TcpOptionsPresent : 1;
      ULONG Reserved : 4;
    } EncapsulatedPacketOffsets;
    PVOID Value;
  };
} NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO, *PNDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO;

멤버

EncapsulatedPacketOffsets

EncapsulatedPacketOffsets.IsEncapsulatedPacket

이 멤버가 TRUE이면 이 NBL은 전송 IP 헤더가 있는 내부 이더넷 프레임이 포함된 패킷을 나타냅니다. 일반 패킷의 경우 FALSE 입니다. IsEncapsulatedPacketTRUE이면 기존 헤더 오프셋 필드가 NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO. LsoV2Transmit.TcpHeaderOffsetNDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO. 전송. TcpHeaderOffset은 올바른 값을 갖지 않으며 NIC 또는 드라이버에서 사용해서는 안 됩니다. 대신 미니포트 드라이버는 이 구조체의 다른 멤버에 지정된 오프셋을 사용해야 합니다.

EncapsulatedPacketOffsets.EncapsulatedPacketOffsetsValid

이 멤버가 TRUE이면 InnerFrameOffset, TransportIpHeaderRelativeOffsetTcpHeaderRelativeOffset 멤버에 유효한 값이 있습니다.

EncapsulatedPacketOffsets.InnerFrameOffset

패킷의 시작 부분에서 내부 이더넷 프레임의 첫 번째 바이트까지 오프셋합니다.

EncapsulatedPacketOffsets.TransportIpHeaderRelativeOffset

InnerFrameOffset을 기준으로 내부 IP 헤더의 첫 번째 바이트에 대한 오프셋입니다.

EncapsulatedPacketOffsets.TcpHeaderRelativeOffset

TransportIpHeaderRelativeOffset을 기준으로 내부(전송) 헤더의 첫 번째 바이트에 대한 오프셋입니다. 내부 프레임이 TCP 패킷이 아니더라도 이 값은 항상 올바른 오프셋으로 설정됩니다.

EncapsulatedPacketOffsets.IsInnerIPv6

캡슐화된 패킷의 내부 IP 헤더에 IPv6 주소가 포함되어 있음을 나타내기 위해 프로토콜 드라이버에서 설정합니다.

EncapsulatedPacketOffsets.TcpOptionsPresent

내부 TCP 헤더에 TCP 옵션이 포함된 경우 프로토콜 드라이버에 의해 설정됩니다. 이를 통해 미니포트 드라이버는 페이로드에 액세스하기 위해 TCP 헤더 길이를 가정할 수 있는 옵션이 없는 경우 사례를 최적화할 수 있습니다.

EncapsulatedPacketOffsets.Reserved

나중에 사용하기 위해 예약되어 있습니다.

Value

다음에 사용하도록 예약됩니다.

설명

NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO 멤버는 TcpIpChecksumNetBufferListInfo 또는 TcpLargeSendNetBufferListInfoNDIS_NET_BUFFER_LIST_INFO 구조에 지정된 경우에만 의미가 있습니다.

IsEncapsulatedPacket 멤버가 TRUE이고 TcpIpChecksumNetBufferListInfo OOB(out-of-band) 정보가 유효한 경우 NVGRE 지원이 필요하고 NIC가 터널(외부) IP 헤더, 전송(내부) IP 헤더 및 TCP 또는 UDP 헤더 중 하나가 있는 경우 체크섬을 계산해야 했음을 나타냅니다. NVGRE 패킷은 패킷이 미니포트 보급 기능을 준수하는 경우에만 오프로드됩니다. 예를 들어 미니포트가 기본 기능에서 UDP Tx 체크섬 오프로드 지원을 보급하지 않으면 UDP 헤더가 포함된 패킷이 오프로드되지 않습니다. 자세한 내용은 체크섬 작업 오프로드를 참조하세요.

요구 사항

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

추가 정보

NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD

NDIS_NET_BUFFER_LIST_INFO

NVGRE(일반 라우팅 캡슐화) 태스크 오프로드를 사용한 네트워크 가상화

체크섬 작업 오프로드