次の方法で共有


NDIS_RECEIVE_SCALE_CAPABILITIES構造体 (ntddndis.h)

NDIS_RECEIVE_SCALE_CAPABILITIES 構造体は、ミニポート アダプターの 機能 受信サイド スケーリング (RSS) を指定します。

構文

typedef struct _NDIS_RECEIVE_SCALE_CAPABILITIES {
  NDIS_OBJECT_HEADER  Header;
  NDIS_RSS_CAPS_FLAGS CapabilitiesFlags;
  ULONG               NumberOfInterruptMessages;
  ULONG               NumberOfReceiveQueues;
  USHORT              NumberOfIndirectionTableEntries;
} NDIS_RECEIVE_SCALE_CAPABILITIES, *PNDIS_RECEIVE_SCALE_CAPABILITIES;

メンバーズ

Header

NDIS_RECEIVE_SCALE_CAPABILITIES 構造体の NDIS_OBJECT_HEADER 構造体。 ヘッダー NDIS_OBJECT_TYPE_RSS_CAPABILITIESに指定する構造体の メンバー 設定します。

NDIS 6.60 以降の場合は、リビジョン メンバーを NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_3 に設定し、サイズ メンバーを NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_3に設定します。

NDIS 6.30 以降では、リビジョン メンバーを NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2 に設定し、サイズ メンバーを NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_2に設定します。

NDIS 6.0、6.1、および 6.20 の場合は、リビジョン メンバーを NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1 に設定し、サイズ メンバーを NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_1に設定します。

CapabilitiesFlags

NIC の RSS 機能を指定するフラグのビットマスク。 ミニポート ドライバーは、次のフラグを指定できます。

価値 意味
NDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS
NIC がメッセージシグナル割り込み (MSI) をサポートしている場合は、このフラグを設定します。 このフラグは、NIC が CPU に割り当てられているパケットをキューに入れた後に、CPU ごとに個別の割り込みを生成できることを示します。
NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR
NIC が、ターゲット CPU が受信パケットをキューに入れた ミニポートInterrupt 関数に指定できる場合は、このフラグを設定します。
NDIS_RSS_CAPS_USING_MSI_X
NIC がメッセージ通知割り込み (MSI) を使用している場合は、このフラグを設定します。 このフラグは、NDIS 6.20 以降でサポートされています。
NDIS_RSS_CAPS_RSS_AVAILABLE_ON_PORTS
NIC がポートの独立した RSS 構成をサポートしている場合は、このフラグを設定します。 このフラグは、NDIS 6.30 以降でサポートされています。
NDIS_RSS_CAPS_SUPPORTS_MSI_X
NIC で MSI がサポートされている場合は、このフラグを設定します。 このフラグは、NDIS 6.30 以降でサポートされています。
NDIS_RSS_CAPS_CLASSIFICATION_AT_DPC
ミニポート ドライバーは、その ミニポートInterruptDPC 関数からパケットを受信するキューに置かれたターゲット CPU を検出できる場合は、このフラグを設定します。
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV4
NIC が IPv4 パケットを識別できる場合は、このフラグを設定します (オプションありまたはオプションなし)。 また、NIC では、IPv4 ヘッダー フィールドと TCP ヘッダー フィールドに対するハッシュ値の計算もサポートされています。
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6
NIC が IPv6 パケットを識別し、IPv6 パケットのフィールドに対してハッシュ値を計算できる場合は、このフラグを設定します。 NIC は、基本的な IPv6 ヘッダーのフィールドと TCP ヘッダー内のフィールドに対してハッシュ値を計算できる必要があります。 NIC が IPv6 拡張ヘッダーにあるフィールドに対してハッシュ値を計算できない場合は、このフラグを使用します。
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6_EX
NIC が IPv6 パケットを識別し、IPv6 拡張ヘッダーを含む IPv6 パケットのフィールドに対してハッシュ値を計算できる場合は、このフラグを設定します。 NIC は、基本的な IPv6 ヘッダー、IPv6 拡張ヘッダー、および TCP ヘッダーのフィールドに対してハッシュ値を計算できます。 NIC は、ホーム アドレス オプションのフィールドと IPv6 拡張ヘッダーの type-2 ルーティング ヘッダーに対してハッシュ値を計算できる必要があります。
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4
NIC が IPv4 パケットを識別できる場合、オプションの有無にかかわらず、NIC が IPv4 ヘッダー フィールドと UDP ヘッダー フィールドに対するハッシュ値の計算をサポートしている場合は、このフラグを設定します。
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6
NIC が IPv6 パケットを識別し、IPv6 パケットのフィールドに対してハッシュ値を計算できる場合は、このフラグを設定します。 NIC は、基本的な IPv6 ヘッダーのフィールドと UDP ヘッダー内のフィールドに対してハッシュ値を計算できる必要があります。 NIC が IPv6 拡張ヘッダーにあるフィールドに対してハッシュ値を計算できない場合は、このフラグを使用します。
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX
NIC が IPv6 パケットを識別し、IPv6 拡張ヘッダーを含む IPv6 パケットのフィールドに対してハッシュ値を計算できる場合は、このフラグを設定します。 NIC は、基本的な IPv6 ヘッダー、IPv6 拡張ヘッダー、および UDP ヘッダーのフィールドに対してハッシュ値を計算できます。 NIC は、ホーム アドレス オプションのフィールドと IPv6 拡張ヘッダーの type-2 ルーティング ヘッダーに対してハッシュ値を計算できる必要があります。
NdisHashFunctionToeplitz
NIC が toeplitz ハッシュ関数をサポートしている場合は、このフラグを設定します。 NIC が RSS をサポートしている場合は、ハッシュ関数のサポートが必須です。 ハッシュ関数の詳細については、NDIS_RSS_HASH_FUNC_FROM_HASH_INFOを参照してください。
NdisHashFunctionReserved1
このフラグは、今後使用するために予約されています。
NdisHashFunctionReserved2
このフラグは、今後使用するために予約されています。
NdisHashFunctionReserved3
このフラグは、今後使用するために予約されています。

NumberOfInterruptMessages

NIC が MSI をサポートしている場合に NIC がサポートする割り込みメッセージの数。 NIC が MIS をサポートしていないが、行ベースの割り込みをサポートしている場合は、この数を 1 に設定します。

NumberOfReceiveQueues

NIC がサポートするハードウェア受信キューの数。

NumberOfIndirectionTableEntries

ミニポート ドライバーが間接テーブルでサポートするエントリの最大数。 この値は 2 の累乗である必要があります。 すべての NDIS 6.30 以降のミニポート アダプターは、仮想関数に必要なこのメンバーをサポートする必要があります。

備考

基になるドライバーは、〘〘OID を OID_GEN_RECEIVE_SCALE_CAPABILITIES して、NIC とそのミニポート ドライバーの受信側スケーリング (RSS) 機能を照会します。

ミニポート ドライバーは、NDIS_RECEIVE_SCALE_CAPABILITIES 構造体の RSS 機能を返します。

一部のワークロードでは、ルートの変更や送信者が MTU の制限に従っていないために、UDP パケットのサブセットが断片化される可能性があります。 このようなまれなケースでは、4 タプルまたは 2 タプル ハッシュに基づいて、同じフローのパケットが異なるプロセッサで示される可能性があります。 したがって、NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6、および NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX をアドバタイズするミニポート ドライバーは、詳細プロパティを使用して UDP RSS 機能を無効にする方法を提供する必要があります。

必要条件

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

関連項目

ミニポートInterrupt

ミニポートInterruptDPC

NDIS_OBJECT_HEADER

NDIS_RSS_HASH_FUNC_FROM_HASH_INFO OID_GEN_RECEIVE_SCALE_CAPABILITIES

Receive Side Scaling (RSS)