NDIS_TCP_CONNECTION_OFFLOAD 構造体 (ntddndis.h)

NDIS_TCP_CONNECTION_OFFLOAD構造体は、現在の設定とサポートされている機能の接続オフロード情報を提供します。

構文

typedef struct _NDIS_TCP_CONNECTION_OFFLOAD {
  NDIS_OBJECT_HEADER Header;
  ULONG              Encapsulation;
  ULONG              SupportIPv4 : 2;
  ULONG              SupportIPv6 : 2;
  ULONG              SupportIPv6ExtensionHeaders : 2;
  ULONG              SupportSack : 2;
  ULONG              CongestionAlgorithm : 4;
  ULONG              TcpConnectionOffloadCapacity;
  ULONG              Flags;
} NDIS_TCP_CONNECTION_OFFLOAD, *PNDIS_TCP_CONNECTION_OFFLOAD;

メンバー

Header

NDIS_TCP_CONNECTION_OFFLOAD構造体のNDIS_OBJECT_HEADER構造体。 Header が指定する構造体の Type メンバーをNDIS_OBJECT_TYPE_DEFAULTに設定し、Revision メンバーを NDIS_TCP_CONNECTION_OFFLOAD_REVISION_1に、Size メンバーを NDIS_SIZEOF_TCP_CONNECTION_OFFLOAD_REVISION_1に設定します。

Encapsulation

TCP チムニー オフロードのカプセル化設定。 このメンバーの詳細については、次の「解説」セクションを参照してください。

SupportIPv4

オフロード ターゲットが IPv4 をサポートしていることを示すために設定する ULONG 値。 TCP/IP ドライバー スタックは、このメンバーを IPv4 を有効にするように設定します。

SupportIPv6

IPv6 をサポートしていることを示すためにオフロード ターゲットが設定する ULONG 値。 TCP/IP ドライバー スタックは、このメンバーを IPv6 を有効にするように設定します。 オフロード ターゲットでは、IPv4 と IPv6 の両方をサポートできることに注意してください。

SupportIPv6ExtensionHeaders

オフロード ターゲットが IPv6 拡張ヘッダー (ルーティング、断片化/再構成、認証、カプセル化、ホップバイホップ処理、宛先オプション) をサポートしていることを示すように設定する ULONG 値。 TCP/IP ドライバー スタックは、このメンバーを IPv6 拡張ヘッダーを有効にするように設定します。

SupportSack

オフロード ターゲットが、送信操作と受信操作の両方で TCP 選択的受信確認 (SACK) をサポートすることを示すために設定される ULONG 値。 TCP/IP ドライバー スタックは、送信操作と受信操作の両方で SACK を有効にするようにこのメンバーを設定します。

オフロード ターゲットが SupportSack メンバーを設定する場合、ターゲットは SACK セグメントを生成して使用できる必要があります。 オフロード ターゲットが SACK オプションをサポートしていない場合、ターゲットは SACK オプションを無視し、TCP セグメントの残りの部分を正常に処理できる必要があります。

CongestionAlgorithm

将来利用するために予約されています。

独立系ハードウェア ベンダー (IHV) で、既定以外の輻輳制御アルゴリズム (複合 TCP など) を実装する場合は、 外部 TCP オフロード トリアージで Microsoft にお問い合わせください。

TcpConnectionOffloadCapacity

オフロード ターゲットが、それがサポートするオフロード TCP 接続の最大数を示すように設定する ULONG 値。 この数には、IPv4 接続と IPv6 接続の両方が含まれます。

Flags

予約済み。

注釈

NDIS_TCP_CONNECTION_OFFLOAD構造体は、ミニポート アダプターが TCP のチムニー オフロードに提供する現在またはサポートされているサービスを指定します。

NDIS_TCP_CONNECTION_OFFLOAD構造体は、 で使用されます。 NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES 構造体、 NDIS_BIND_PARAMETERS 構造体、 OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG Oid OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES OID、NDIS_STATUS_OFFLOAD_RESUME状態表示、および NDIS_STATUS_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES 状態を示します。 (NDIS_STATUS_OFFLOAD_RESUMEの詳細については、 NDIS 6.0 TCP のチムニー オフロードに関するドキュメントを参照してください)。

ミニポート ドライバーは OID クエリを受け取りません。 NDIS は、OID クエリへの応答を提供し、バインド パラメーターを提供する属性と状態の表示でミニポート ドライバーが提供する情報を使用します。

NDIS は、OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIGまたはOID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIESのクエリに応答して、NDIS_TCP_CONNECTION_OFFLOAD構造体を提供します。 OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG クエリに応答して、NDIS_TCP_CONNECTION_OFFLOAD構造体はオフロード ターゲットの現在の構成設定を指定します。 OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES クエリに応答して、NDIS_TCP_CONNECTION_OFFLOAD構造体は、TCP/IP トランスポートから TCP 接続をオフロードするためのオフロード ターゲットのハードウェア機能を指定します。

NDIS_TCP_CONNECTION_OFFLOADの カプセル化 メンバーは、ミニポート アダプターの TCP チムニー オフロード カプセル化設定を定義します。

の場合は、クエリ要求OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES、NDIS は、カプセル化メンバーのハードウェア カプセル化機能を示す 1 つのフラグを提供します。

の場合は、クエリ要求OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG、NDIS は現在のカプセル化設定を示すカプセル化フラグのビットごとの OR を提供します。

カプセル化メンバーには、次のフラグが定義されています。

大事な チムニー対応のミニポート ドライバーまたは多重化ドライバーは、 カプセル化 メンバーをNDIS_ENCAPSULATION_IEEE_802_3、NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED、またはその両方に設定する必要があります。 そうしないと、チムニー機能は認識されません。
 

TCP チムニー オフロード クエリ

NDIS が のクエリに応答する場合 OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES またはオフロード ターゲットのOID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG、NDIS は、NDIS_TCP_CONNECTION_OFFLOAD構造体の SupportIp4SupportIp6SupportIp6ExtensionHeadersおよび SupportISack メンバーを提供します。 これらのメンバーには、次のいずれかの値を指定できます。

オフロード ターゲットは、IPv4 または IPv6 (またはその両方) をサポートする必要があります。 オフロード ターゲットでは、必要に応じて IPv6 拡張機能ヘッダーをサポートできます。

オフロード ターゲットでは、IPv4 オプションはサポートされません。 オフロード ターゲットは、IPv4 オプションを含む受信 IP データグラムを TCP/IP ドライバー スタックに転送する必要があります。 オフロード ターゲットは、 を呼び出すことによって、このような IP データグラムを TCP/IP ドライバー スタックに示します。 NdisMIndicateReceiveNetBufferLists。 TCP/IP ドライバー スタックは IPv4 オプションを処理し、オフロード ターゲットの にデータグラムを返します。 MiniportTcpOffloadForward 関数。 ( MiniportTcpOffloadForward の詳細については、 NDIS 6.0 TCP のチムニー オフロードに関するドキュメントを参照してください)。

オフロード ターゲットでは、NDIS_TCP_CONNECTION_OFFLOADの TcpConnectionOffloadCapacity メンバーの値も指定する必要があります。 この値は、オフロード ターゲットがサポートできる同時にオフロードされる TCP 接続の最大数である必要があります。

オフロード ターゲットは、新しいオフロード機能を直接示すことはできません。 代わりに、オフロード ターゲットは、一時停止し、オフロードを再開する TCP/IP ドライバー スタックを要求する必要があります。 ミニポート アダプターは、TCP 接続のオフロードを再開する準備ができたら、新しい接続オフロード機能を報告するNDIS_STATUS_OFFLOAD_RESUME状態を示すを発行します。 NDIS_STATUS_OFFLOAD_RESUMEの詳細については、 NDIS 6.0 TCP のチムニー オフロードに関するドキュメントを参照してください

要件

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

こちらもご覧ください

NDIS_BIND_PARAMETERS

NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES

NDIS_OBJECT_HEADER

NDIS_OFFLOAD

ndisMIndicateReceiveNetBufferLists OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIESをNDIS_STATUS_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIESする