NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO 구조체(ndis/nbllso.h)

NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO 구조는 TCP/IP 전송에서 미니포트 어댑터로 LSO(대규모 송신 오프로드) 작업을 오프로드하는 데 사용되는 정보를 지정합니다. NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO 구조는 NET_BUFFER_LIST 정보의 일부입니다.

구문

typedef struct _NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO {
  union {
    struct {
      ULONG Unused : 30;
      ULONG Type : 1;
      ULONG Reserved2 : 1;
    } Transmit;
    struct {
      ULONG MSS : 20;
      ULONG TcpHeaderOffset : 10;
      ULONG Type : 1;
      ULONG Reserved2 : 1;
    } LsoV1Transmit;
    struct {
      ULONG TcpPayload : 30;
      ULONG Type : 1;
      ULONG Reserved2 : 1;
    } LsoV1TransmitComplete;
    struct {
      ULONG MSS : 20;
      ULONG TcpHeaderOffset : 10;
      ULONG Type : 1;
      ULONG IPVersion : 1;
    } LsoV2Transmit;
    struct {
      ULONG Reserved : 30;
      ULONG Type : 1;
      ULONG Reserved2 : 1;
    } LsoV2TransmitComplete;
    PVOID Value;
  };
} NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO, *PNDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO;

멤버

Transmit

전송 정보를 지정하고 다음 멤버를 포함하는 NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO 내의 구조체입니다.

Transmit.Unused

NDIS용으로 예약된 사용되지 않는 공간을 지정하는 ULONG 값입니다.

Transmit.Type

미니포트 드라이버가 실행되어야 하는 오프로드 형식입니다. 프로토콜 드라이버는 이 멤버를 NDIS_TCP_LARGE_SEND_OFFLOAD_V1_TYPE 설정하여 LSOV1(대규모 송신 오프로드 버전 1) 작업을 지정하거나 NDIS_TCP_LARGE_SEND_OFFLOAD_V2_TYPE LSOV2(대규모 송신 오프로드 버전 2) 작업을 지정합니다.

Transmit.Reserved2

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

LsoV1Transmit

LSO 전송 정보를 지정하고 다음 멤버를 포함하는 NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO 내의 구조체입니다.

LsoV1Transmit.MSS

segmentaion 이후의 각 패킷에 대한 최대 세그먼트 크기(바이트)입니다. TCP/IP 전송은 분할을 위해 큰 TCP 패킷을 미니포트 드라이버에 전달하기 전에 이 값을 씁니다. 전송된 각 세그먼트의 TCP 페이로드 크기는 이 값을 초과해서는 안됩니다.

LsoV1Transmit.TcpHeaderOffset

TCP 패킷에 대한 패킷 시작 부분의 TCP 헤더 오프셋(바이트)입니다. 미니포트 드라이버는 TcpHeaderOffset 을 사용하여 IP 헤더를 구문 분석할 필요가 없도록 TCP 헤더의 위치를 확인할 수 있습니다.

LsoV1Transmit.Type

미니포트 드라이버가 실행되어야 하는 오프로드 형식입니다. 프로토콜 드라이버는 이 멤버를 NDIS_TCP_LARGE_SEND_OFFLOAD_V1_TYPE 설정하여 LSOV1 작업을 지정하거나 NDIS_TCP_LARGE_SEND_OFFLOAD_V2_TYPE LSOV2 작업을 지정합니다.

LsoV1Transmit.Reserved2

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

LsoV1TransmitComplete

LSO 전송 전체 정보를 지정하고 다음 멤버를 포함하는 NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO 내의 구조체입니다.

LsoV1TransmitComplete.TcpPayload

큰 패킷을 분할하여 만든 NIC(네트워크 인터페이스 카드) 패킷 집합의 총 TCP 페이로드 바이트 수입니다. 미니포트 드라이버는 LSO 패킷 보내기를 완료하기 전에 TCP 페이로드 크기를 씁니다.

LsoV1TransmitComplete.Type

미니포트 드라이버가 수행한 오프로드 유형입니다. mniport 드라이버는 오버리싱 드라이버가 전송을 위해 패킷을 제출했을 때와 동일하게 이 값을 남깁니다.

LsoV1TransmitComplete.Reserved2

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

LsoV2Transmit

LSOV2 전송 정보를 지정하고 다음 멤버를 포함하는 NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO 내의 구조체입니다.

LsoV2Transmit.MSS

각 TCP 세그먼트에 대한 MSS(바이트)입니다. TCP/IP 전송은 분할을 위해 큰 TCP 패킷을 미니포트 드라이버에 전달하기 전에 이 값을 씁니다.

LsoV2Transmit.TcpHeaderOffset

TCP 패킷에 대한 패킷 시작 부분의 TCP 헤더 오프셋(바이트)입니다. 미니포트 드라이버는 TcpHeaderOffset 을 사용하여 IP 헤더를 구문 분석할 필요가 없도록 TCP 헤더의 위치를 확인할 수 있습니다.

LsoV2Transmit.Type

미니포트 드라이버가 실행되어야 하는 오프로드 형식입니다. 프로토콜 드라이버는 이 멤버를 NDIS_TCP_LARGE_SEND_OFFLOAD_V1_TYPE 설정하여 LSOV1 작업을 지정하거나 NDIS_TCP_LARGE_SEND_OFFLOAD_V2_TYPE LSOV2 작업을 지정합니다.

LsoV2Transmit.IPVersion

패킷의 IP 버전입니다. IPv4 패킷의 경우 IPVersion 은 NDIS_TCP_LARGE_SEND_OFFLOAD_IPv4 설정됩니다. IPv6 패킷의 경우 IPVersion 은 NDIS_TCP_LARGE_SEND_OFFLOAD_IPv6 설정됩니다.

LsoV2TransmitComplete

LSOV2 전송 전체 정보를 지정하고 다음 멤버를 포함하는 NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO 내의 구조체입니다.

LsoV2TransmitComplete.Reserved

일반적으로 이 멤버는 NDIS용으로 예약되어 있습니다. 그러나 보내기 작업이 완료되면 미니포트 드라이버는 이 멤버를 0으로 설정해야 합니다.

LsoV2TransmitComplete.Type

미니포트 드라이버가 수행한 오프로드 유형입니다. mniport 드라이버는 오버리싱 드라이버가 전송을 위해 패킷을 제출했을 때와 동일하게 이 값을 남깁니다.

예를 들어 보내기 작업이 완료되면 미니포트 드라이버는 이 멤버를 NDIS_TCP_LARGE_SEND_OFFLOAD_V2_TYPE 설정합니다.

LsoV2TransmitComplete.Reserved2

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

Value

LSO 정보의 PVOID 버전입니다. 이 멤버를 사용하여 특정 필드 대신 원시 정보에 액세스합니다.

설명

NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO 구조체는 LSOV1 및 LSOV2 작업에 대한 정보를 지정합니다. NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO 구조체는 NET_BUFFER_LIST 구조체에 포함된 정보의 일부입니다.

LSOV1 또는 LSOV2 정보를 설정하고 가져오려면 NET_BUFFER_LIST_INFO 매크로와 함께 TcpLargeSendNetBufferListInfo 인덱스를 사용합니다. NET_BUFFER_LIST_INFO ULONG 값(ULONG 값에 대한 포인터가 아님)을 반환합니다.

TCP/IP 전송은 미니포트 드라이버에 큰 패킷을 보내기 전에 NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO 구조체의 MSSTcpHeaderOffset 멤버를 업데이트합니다.

LSOV1의 경우 미니포트 드라이버는 분할된 패킷에 대한 보내기 작업을 완료하기 전에 TcpPayload 멤버에 TCP 페이로드 크기를 씁니다.

참고 LSOv1 또는 LSOv2 정보를 포함하는 모든 NET_BUFFER_LIST 구조체에는 단일 NET_BUFFER 구조도 포함됩니다.
 

요구 사항

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

추가 정보

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_INFO

대형 TCP 패킷의 분할 오프로드