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

ミニポート ドライバーを実行する必要があるオフロードの種類。 プロトコル ドライバーは、大規模な送信オフロード バージョン 1 (LSOV1) 操作を指定するNDIS_TCP_LARGE_SEND_OFFLOAD_V1_TYPEにこのメンバーを設定するか、大きな送信オフロード バージョン 2 (LSOV2) 操作を指定するNDIS_TCP_LARGE_SEND_OFFLOAD_V2_TYPEに設定します。

Transmit.Reserved2

NDIS 用に予約されています。

LsoV1Transmit

LSO 送信情報を指定し、次のメンバーを含む NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO 内の構造体。

LsoV1Transmit.MSS

セグメント化後の各パケットの最大セグメント サイズ (MSS) (バイト単位)。 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 の情報を設定して取得するには、 tcpLargeSendNetBufferListInfo インデックスと NET_BUFFER_LIST_INFO マクロを使用します。 NET_BUFFER_LIST_INFO は ULONG 値を返します (ULONG 値へのポインターではありません)。

TCP/IP トランスポートは、ミニポート ドライバーに大きなパケットを送信する前に、NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO構造体の MSS および TcpHeaderOffset メンバーを更新します。

LSOV1 の場合、ミニポート ドライバーは、セグメント化されたパケットの送信操作を完了する前に 、TcpPayload メンバーに TCP ペイロード サイズを書き込みます。

メモ LSOv1 または LSOv2 情報を含 むNET_BUFFER_LIST構造体 には、1 つの NET_BUFFER 構造体も含まれます。
 

要件

要件
サポートされている最小のクライアント NDIS 6.0 以降でサポートされています。
Header ndis/nbllso.h (ndis.h を含む)

こちらもご覧ください

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_INFO

大きな TCP パケットのセグメント化のオフロード