次の方法で共有


NDIS_RSS_SET_INDIRECTION_ENTRY構造体 (ntddndis.h)

警告

このトピックの一部の情報は、リリース前の製品に関連しており、商用リリース前に大幅に変更される可能性があります。 Microsoft は、ここで提供される情報に関して明示的または黙示的な保証を行いません。

RSSv2 は、Windows 10 バージョン 1803 でのみプレビューです。

NDIS_RSS_SET_INDIRECTION_ENTRY 構造体は、1 つの間接テーブル エントリを設定するコマンドを表します。 これは、OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID で使用される NDIS_RSS_SET_INDIRECTION_ENTRIES 構造体に含まれています。 OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIESは、RSS バージョン 2 (RSSv2)用の 同期 OID です。

構文

typedef struct _NDIS_RSS_SET_INDIRECTION_ENTRY {
  NDIS_NIC_SWITCH_ID       SwitchId;
  NDIS_NIC_SWITCH_VPORT_ID VPortId;
  ULONG                    Flags;
  USHORT                   IndirectionTableIndex;
  PROCESSOR_NUMBER         TargetProcessorNumber;
  NDIS_STATUS              EntryStatus;
} NDIS_RSS_SET_INDIRECTION_ENTRY, *PNDIS_RSS_SET_INDIRECTION_ENTRY;

メンバーズ

SwitchId

VPort が存在する NIC スイッチを表すNDIS_NIC_SWITCH_ID値。

スイッチ識別子は、0 からネットワーク アダプターがサポートするスイッチの数の整数です。 NDIS_DEFAULT_SWITCH_ID値は、既定のネットワーク アダプター スイッチを示します。

ネイティブ RSS の場合、このフィールドは 0 に設定する必要があります。

VPortId

VPort 識別子を表すNDIS_NIC_SWITCH_VPORT_ID値。

ネイティブ RSS の場合、このフィールドは 0 に設定する必要があります。

Flags

フラグのビットごとの OR を含む ULONG 値。 このメンバーは、この構造体の情報を修飾します。

使用可能なフラグは次のとおりです。

価値 意味
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_PRIMARY_PROCESSOR
NDIS_RSS_SET_INDIRECTION_ENTRY がスケーリング エンティティのプライマリ プロセッサを参照していることを示します。 間接テーブルは使用されません。 プライマリ プロセッサが *非アクティブ* (RSS が有効) の場合、ミニポート ドライバーは、RSS が無効になっているときにどのプロセッサがプライマリになるかを認識できるように、このフラグが設定されたエントリの更新を追跡する必要があります。
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_DEFAULT_PROCESSOR
NDIS_RSS_SET_INDIRECTION_ENTRY がスケーリング エンティティの既定のプロセッサを参照していることを示します。 既定のプロセッサは、未固定パケットを処理します。 間接テーブルは使用されません。 既定のプロセッサが *非アクティブ* (RSS が無効) の場合、ミニポート ドライバーは、RSS が有効になっているときに既定になるプロセッサを認識できるように、このフラグが設定されたエントリの更新を追跡する必要があります。

IndirectionTableIndex

現在の CPU を指しており、別のプロセッサを指すよう変更されている ITE のハッシュ インデックス。 間接テーブルが非アクティブな (RSS が無効) 場合、ミニポート ドライバーは、RSS が有効になっているときに正しい間接参照テーブルを持つ間接テーブルエントリの更新を追跡する必要があります。

TargetProcessorNumber

ITE が完了時に指すターゲット プロセッサ番号。 ミニポート ドライバーは、ITE が現在のプロセッサから現在のプロセッサに移動に成功する必要があります。

EntryStatus

このエントリの移動操作の状態を示すNDIS_STATUS コード。 NDIS_RSS_SET_INDIRECTION_ENTRY は同期 OID 呼び出しのコンテキストで使用されるため、ミニポート ドライバーはこのメンバーの NDIS_STATUS_PENDING を返すことができません。

ミニポート ドライバーの実装を簡略化するために、上位層プロトコルは、このフィールドをNDIS_STATUS_PENDINGに初期化します。 ミニポート ドライバーは、成功または失敗のいずれかの NDIS 状態コードでNDIS_STATUS_PENDINGを上書きする必要があります。 上層は、OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID の完了時にこのフィールドがまだNDIS_STATUS_PENDINGされていることを検出した場合、システム バグ チェックが発生し、ミニポート ドライバーに障害があることを示します。

大事な

NDIS_RSS_SET_INDIRECTION_ENTRIES 構造体に含まれるグループ内のすべての NDIS_RSS_SET_INDIRECTION_ENTRY 構造体は、同じ EntryStatusでマークする必要があります。

この移動コマンドでエラーが発生した場合は、EntryStatus を、そのエラー状態の次のいずれかの状態コードに設定します。

状態コード エラー条件
NDIS_STATUS_INVALID_PARAMETER
  • SwitchId または VPortId メンバー が無効でした。
  • Flags メンバーが無効でした。
  • IndirectionTableIndex メンバーは、NDIS_RECEIVE_SCALE_PARAMETERS_V2 構造体から現在構成されている NumberOfIndirectionTableEntries を超えています。
NDIS_STATUS_INVALID_PORT_STATE VPort がアクティブ化されていないか、RSSv2 OID を受け入れられない他の状態です。
NDIS_STATUS_NOT_ACCEPTED アクターの CPU が無効でした。
NDIS_STATUS_INVALID_DATA アクティブな ステアリング パラメーター の場合、新しいプロセッサはアダプターの RSS プロセッサ セットの一部ではありません。 非アクティブな パラメーター 追跡する必要があるだけであることに注意してください。 後で RSS 状態遷移中に検証されます ( するか、オフに)。
NDIS_STATUS_NO_QUEUES コマンド エントリのグループは、そのグループで指定された VPort の "キューの数" チェックに失敗します。

必要条件

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

関連項目

NDIS_RSS_SET_INDIRECTION_ENTRIES

OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES

Receive Side Scaling Version 2 (RSSv2)

NDIS 6.80 での同期 OID 要求インターフェイスの