Share via


OID_GEN_RECEIVE_SCALE_PARAMETERS_V2

警告

本トピックの一部の情報はリリース前の製品に関することであり、正式版がリリースされるまでに大幅に変更される可能性があります。 Microsoft はここに示されている情報について、明示か黙示かを問わず、一切保証しません。

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

OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 OID は RSSv2 対応ミニポート ドライバーに送信され、スケーリング エンティティの実行時パラメーター (間接指定テーブル以外) を設定します。 OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 は、RSSv1 からの OID_GEN_RECEIVE_SCALE_PARAMETERS OID を置き換え、NDIS 6.80 より前の NDIS 軽量フィルター (LWF) には表示されません。 この OID は通常の OID であり、クエリまたは Set 要求として発行できます。 この OID は IRQL == PASSIVE_LEVEL で発行されます。 NIC スイッチの作成時に NDIS_OID_REQUEST_FLAGS_VPORT_ID_VALID フラグが設定されている場合は、特定の VPort をターゲットにできます。 それ以外の場合は、ネイティブ RSS ケースの物理 NIC がターゲットになります。

NDIS ドライバーおよび上部のドライバーは、クエリとして、OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 を使用して、NIC の RSS パラメーターのクエリを実行できます。 NDIS は、現在の RSS パラメーターを定義する NDIS_RECEIVE_SCALE_PARAMETERS_V2 構造体を返します。

この OID の目的は、セットとして、次のアクションを実行することです。

  • 最初に、スケーリング エンティティ (ネイティブ RSS モードのミニポート アダプターまたは VMQ モードの VPort) を構成します。
  • RSS を有効または無効にします。
  • RSS モードの場合、スケーリング エンティティのハッシュ キー、ハッシュの種類とハッシュ関数、キューの数、間接指定テーブル エントリの数の変更など、タイミングが重要でない管理機能を実行します。

解説

RSS の有効化と RSS パラメーターの設定は、1 つの手順で実行できます。 この OID を使用して上位レイヤーで RSS を有効にすると、スケーリング エンティティの初期状態は次のようになります。

  • プライマリ プロセッサが非アクティブになります。
  • 既定のプロセッサがアクティブになります。
  • すべての ITE がアクティブになります。
  • ミニポート ドライバーは、RSS ハッシュの計算、すべてのパケットの対応する OOB の設定、間接指定テーブル エントリまたは既定のプロセッサ パラメーターで指定されたプロセッサへのパケットの転送を開始します。

RSS が有効になった後、上位レイヤーは OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID を発行して、ITE を異なるプロセッサに移動します。 RSSv2 では、DefaultQueuePrimaryProcessor も、OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES を使用して別のプロセッサに移動されます。

RSS を無効にするプロセス中、上位レイヤーは、この OID を呼び出して RSS をオフにする前に、すべての ITE をプライマリ プロセッサに指定します。 この指定後、受信トラフィックはプライマリ プロセッサをターゲットにします。 ただし、ミニポート ドライバーでは、VPort の削除前に RSS が無効にされることを想定していません。 上位レイヤーは、VPort の受信フィルターを 0 に設定できるため、受信トラフィックが VPort 経由で流れないようにして、RSS を無効にせずに VPort の削除に進みます。

上位レイヤーでは、管理機能を実行する前に重要なインバリアントが違反されていないことを確認します。 次に例を示します。

  • キューの数を変更する前に、上位レイヤーでは、間接指定テーブルが VPort 用に構成されているプロセッサ数よりも多いプロセッサを参照しないことを確認します。 VMMQ-RESTRICTED アダプターの間接指定テーブル エントリの数を変更する前に、上位レイヤーでは、間接指定テーブルの内容が 2 の累乗に正規化されていることを確認します。

エラー状態と状態コード

この OID は、エラーが発生すると、次の状態コードを返します。

状態コード エラー状態
NDIS_STATUS_INVALID_LENGTH OID の形式に誤りがある。
NDIS_STATUS_NO_QUEUES RSS が有効なときにキューの数が変更されていますが、現在の間接指定テーブルでは、新しいキューの数よりも多くのプロセッサが参照されています。
NDIS_STATUS_INVALID_DATA
  • 間接指定テーブルのサイズは縮小されていますが、2 の累乗の繰り返しパターンが含まれていません。
  • RSS 状態遷移 (オンまたはオフへ) 中、アクティブなになるステアリング パラメーターのプロセッサは、アダプターの RSS プロセッサ セットに属していません。 非アクティブなステアリング パラメーターはプロセッサへの書き込みを追跡するのみで、適用されないことに注意してください。 パラメーターがアクティブになると、RSS 状態遷移中に適用が行われます
NDIS_STATUS_INVALID_PARAMETER ヘッダーまたは OID 自体の他のフィールドに無効な値が含まれています。

要件

バージョン: Windows 10 バージョン 1709 ヘッダー: Ntddndis.h (Ndis.h を含む)

関連項目