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構造体。 Header が指定する構造体の Type メンバーをNDIS_OBJECT_TYPE_RSS_CAPABILITIESに設定します。

NDIS 6.60 以降の場合は、 Revision メンバーを NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_3 に、 Size メンバーを NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_3 に設定します。

NDIS 6.30 以降の場合は、 Revision メンバーを NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2 に設定し、 Size メンバーを NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_2に設定します。

NDIS 6.0、6.1、6.20 の場合、 Revision メンバーを NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1 に設定し、 Size メンバーを 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 を MiniportInterrupt 関数に指定できる場合は、このフラグを設定します。
NDIS_RSS_CAPS_USING_MSI_X
NIC がメッセージシグナル割り込み (MSI) を使用している場合は、このフラグを設定します。 このフラグは、NDIS 6.20 以降でサポートされています。
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 が MSI をサポートしていないが、行ベースの割り込みをサポートしている場合は、この数を 1 に設定します。

NumberOfReceiveQueues

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

NumberOfIndirectionTableEntries

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

注釈

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

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

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

要件

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

こちらもご覧ください

MiniportInterrupt

MiniportInterruptDPC

NDIS_OBJECT_HEADER

NDIS_RSS_HASH_FUNC_FROM_HASH_INFO OID_GEN_RECEIVE_SCALE_CAPABILITIES

Receive Side Scaling (RSS)