稼働中の NDIS QoS パラメーターへの変更の表示

NDIS サービス品質 (QoS) をサポートするミニポート ドライバーは、ドライバーの操作 NDIS QoS パラメーターが初めて解決されるか、後で変更するとき、 NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE ステータス指示を発行します。 ミニポート ドライバーは、QoS パケット転送を実行するため、これらの操作パラメーターを使用してネットワーク アダプターを構成します。

ミニポート ドライバーは、 NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE ステータス指示を発行するため、次のガイドラインに従う必要があります。

  • ミニポート ドライバーは、最初にその操作 NDIS QoS パラメーターを解決し、それらを使用してネットワーク アダプターを構成した後、 NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE ステータス指示を発行する必要があります。

    : ミニポート ドライバーは、レジストリ内の専用のローカル NDIS QoS パラメーターでプロビジョニングされている場合、ドライバーは、 MinipoutInitializeEx への呼び出し中または直後に NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE 状態表示を発行する必要があります。 この場合、ドライバーは、独自の ローカル NDIS QoS パラメーター設定を使用して NDIS_QOS_PARAMETERS 構造体を初期化します。

    ドライバーが操作 NDIS QoS パラメーターの設定を解決する方法の詳細については、「操作 NDIS QoS パラメーターの解決」を参照してください。

  • この初期ステータス指示の後、ミニポート ドライバーは、その操作 NDIS QoS パラメーターが変更されたときに NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE ステータス指示を発行する必要があります。 たとえば、運用 NDIS QoS パラメーターは、次の条件下で変更される可能性があります。

    • ローカル NDIS QoS パラメーターの変更により、運用 NDIS QoS パラメーターが変更されます。 これらのパラメーターは、 OID_QOS_PARAMETERS の OID メソッド要求、または独立系ハードウェア ベンダー (IHV) によって開発された管理アプリケーションを通じて変更される可能性があります。

    • リモート ピアからの QoS 設定との競合により、運用 NDIS QoS パラメーターが変更されます。

      ミニポート ドライバーは、I Enterprise Edition E 802.1Qaz データ センター ブリッジング Exchange (DCBX) プロトコルを使用して、リモート ピアの QoS パラメーターを検出します。 DCBX Willing 状態が有効になっている場合、ドライバーは、DCBX 状態エンジンに定義されている手順に従って、QoS パラメーターとリモート ピアの QoS パラメーターの違いを解決する必要があります。 この状態エンジンの詳細については、I Enterprise Edition E 802.1Qaz ドラフト標準を参照してください。

      ローカル DCBX の Willing 状態の詳細については、「ローカル DCBX Willing State の管理」を参照してください。

    : ミニポート ドライバーは、ローカルまたはリモート NDIS QoS パラメーターを受け取るとき、操作 NDIS QoS パラメーターに変更がない場合は、 NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE 状態表示を発行しないでください。 ドライバーがこの不要なステータス指示を作成した場合、NDIS は上位ドライバーに指示を渡さない可能性があります。

  • ミニポート ドライバーは、操作 NDIS QoS パラメーターを 解決するために使用されたローカル NDIS QoS パラメーターをオーバーライドする必要がある場合に、 NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE 状態の表示を発行する必要があります。

    ミニポート ドライバーは、NDIS と、 NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE 状態表示を発行することによって、ローカル NDIS QoS パラメーターをオーバーライドしたことを基になるドライバーに通知します。 この種類の表示では、ドライバーは、ローカル NDIS QoS パラメーターをオーバーライドする理由を指定する NDIS_QOS_PARAMETERS 構造体の Flags メンバーに適切な NDIS_QOS_PARAMETERS_Xxx_CHANGED フラグを設定する必要があります。

    ミニポート ドライバーがローカル QoS パラメーターを管理する方法の詳細については、 「ローカル NDIS QoS パラメーターの設定」を参照してください。

    ミニポート ドライバーが動作 QoS パラメーターを解決する方法の詳細については、「操作 NDIS QoS パラメーターの解決」を参照してください。

: ミニポート ドライバーは、その NDIS QoS 機能が現在 *QOS キーワード (keyword)標準化された INF キーワード (keyword)を通じて有効になっている場合は、 NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE 状態表示を発行する必要があります。 詳細については、「NDIS QoS の標準化された INF キーワード」を参照してください。

NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGEステータス表示の発行に関するガイドライン

ミニポート ドライバーは、 NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE 状態の表示を発行するときに、次の 手順に 従います。

  1. ミニポート ドライバーは、次を含めるのに十分な大きさのバッファーを割り当てます。

    • NDIS QoS の構成設定と NDIS QoS トラフィック クラスのグローバル操作パラメーターを含む NDIS_QOS_PARAMETERS 構造体。

    • NDIS_QOS_CLASSIFICATION_ELEMENT 構造体の配列。 これらの各構造体は、パケット データ パターン (条件) と関連付けられた IEEE 802.1p 優先度レベル (アクション) によって定義されるトラフィック分類を指定します。 ネットワーク アダプターは、条件に一致する送信パケットまたは エグレス パケットのパターンを検出すると、関連付けられた優先順位レベルをパケットに割り当てます。 アダプターは、優先順位レベルに基づいてパケットに他の NDIS QoS ポリシーも適用します。

  2. ミニポートは、操作 NDIS QoS パラメーターを 使用して NDIS_QOS_PARAMETERS 構造体を初期化します。 ドライバーは、ネットワーク アダプターで構成されていない可能性があるパラメーターを含む、操作パラメーターの完全なセットを提供する必要があります。

    ミニポート ドライバーは、 ヘッダー メンバーを初期化したとき、 ヘッダー メンバーを NDIS_OBJECT_TYPE_QOS_PARAMETERS に設定します。 ミニポート ドライバーは、 ヘッダーリビジョン メンバーを NDIS_QOS_PARAMETERS_REVISION_1に設定し、 サイズ メンバーをNDIS_SIZEOF_QOS_PARAMETERS_REVISION_1します。

    ミニ ポート ドライバーが NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE 状態印字ケーションを発行したため、対応するメンバーに変更されたデータを含む場合、ミニ ポート ドライバーは、適切な NDIS_QOS_PARAMETERS_Xxx_CHANGED フラグを [フラグ] メンバーに設定します。

    注:NDIS_QOS_PARAMETERS_Xxx_CHANGED フラグの設定は省略可能です。 NDIS は常に、 NDIS_QOS_PARAMETERS のメンバーが以前の NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE 状態表示から変更されていない場合でも、現在の状態であることを前提としています。

    Flags メンバーを設定する方法の詳細については、「フラグ メンバーを設定するための ガイドライン」を参照してください。

  3. ミニポート ドライバーは、 運用 NDIS QoS パラメーターからの各トラフィック分類の NDIS_QOS_CLASSIFICATION_ELEMENT 構造を初期化します。 ドライバーは、バッファー内の NDIS_QOS_PARAMETERS構造体 の末尾にこれらの要素を追加します。

    : ミニポート ドライバーは、任意のNDIS_QOS_CLASSIFICATION_ELEMENT構造体の Flags メンバーに NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT フラグを設定する必要があります。

    ドライバーは、配列内の分類要素の数に NDIS_QOS_PARAMETERS 構造体の NumClassificationElements メンバーを設定します。 ドライバーは、バッファーの 先頭から最初の要素のバイト オフセットに FirstClassificationElementOffset メンバーを設定します。 また、ドライバーは ClassificationElementSize メンバーを配列内の各要素の長さ (バイト単位) に設定します。

    NDIS 6.30 以降では、ミニポート ドライバーは、 ClassificationElementSize メンバーを sizeof(NDIS_QOS_CLASSIFICATION_ELEMENTに設定する必要があります)。

  4. ミニポート ドライバーは、次の方法でステータス指示の NDIS_STATUS_INDICATION 構造を初期化します。

    • StatusCode メンバーは、NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGEに設定する必要があります。

    • StatusBuffer メンバーは、操作 NDIS QoS パラメーターを含むバッファーへのポインターに設定する必要があります。

    • StatusBufferSize メンバーは、バッファーの長さをバイト単位で設定する必要があります。

  5. ミニポート ドライバーは、 NdisMIndicateStatusExを呼び出すことによってステータス指示を発行します。 ドライバーは、 StatusIndication パラメーターに NDIS_STATUS_INDICATION 構造へのポインターを渡す必要があります。

Flags メンバーの設定に関するガイドライン

ミニポート ドライバーは、ネットワーク アダプターで構成または変更された操作 NDIS QoS パラメーターを指定する NDIS_QOS_PARAMETERS 構造体の フラグ メンバーに次のフラグを設定します。

NDIS_QOS_PARAMETERS_ETS_CONFIGURED
このフラグが設定されている場合、ミニポート ドライバーは、次のメンバーに含まれる ETS パラメーターを使用してネットワーク アダプターを構成しています。

  • NumTrafficClasses

  • PriorityAssignmentTable

  • TcBandwidthAssignmentTable

  • TsaAssignmentTable

: ミニポート ドライバーは、DCB の NDIS QoS をサポートするために ETS をサポートする必要があります。 ただし、このフラグの設定では、ネットワーク アダプターが ETS をサポートするかどうかを指定しません。 代わりに、このフラグの設定では、ネットワーク アダプターで ETS パラメーターを構成するかどうかを指定します。

NDIS_QOS_PARAMETERS_ETS_CHANGED
このフラグが設定されている場合、次のメンバーで 1 つ以上の ETS パラメーターが変更されています。

  • NumTrafficClasses

  • PriorityAssignmentTable

  • TcBandwidthAssignmentTable

  • TsaAssignmentTable

NDIS_QOS_PARAMETERS_PFC_CONFIGURED
このフラグが設定されている場合、ミニポート ドライバーは、ネットワーク アダプターが構成されている、 PfcEnable メンバーに含まれているPFC 設定です。

: ミニポート ドライバーは、DCB の NDIS QoS をサポートするために PFC をサポートする必要があります。 このフラグの設定では、ネットワーク アダプターが PFC をサポートするかどうかを指定しません。 代わりに、このフラグの設定は、ネットワーク アダプターで PFC パラメーターを有効にするかどうかだけを指定します。

NDIS_QOS_PARAMETERS_PFC_CHANGED
このフラグが設定されている場合、1 つ以上のPFC設定が PfcEnable メンバーで変更されています。

NDIS_QOS_PARAMETERS_CLASSIFICATION_CONFIGURED
このフラグが設定されている場合、ミニポート ドライバーは、次のメンバーで指定された QoS トラフィック分類パラメーターを使用してネットワーク アダプターを構成しています。

  • NumClassificationElements

  • ClassificationElementSize

  • FirstClassificationElementOffset

NDIS_QOS_PARAMETERS_CLASSIFICATION_CHANGED
このフラグが設定されている場合、次のメンバーで 1 つ以上の QoS トラフィック分類パラメーターが変更されています。

  • NumClassificationElements

  • ClassificationElementSize

  • FirstClassificationElementOffset

注:NDIS_QOS_PARAMETERS 構造体に NDIS QoS パラメーター設定が含まれている場合は、 NDIS_QOS_PARAMETERS_Xxx_CONFIGURED フラグを設定する必要があります。 ミニポート ドライバーは、設定が変更されたかどうかに関係なく、これらのフラグを設定する必要があります。 ただし、ドライバーは、変更された 設定に対してのみ、 NDIS_QOS_PARAMETERS_Xxx_CHANGED フラグを設定する必要があります。