NDIS QoS 機能の登録

ミニポート ドライバーは、ネットワーク アダプターの初期化時に NDIS で次のサービス品質 (QoS) 機能を登録します。

  • ネットワーク アダプターによってサポートされる NDIS QoS ハードウェア機能。

    NDIS 6.30 以降、ミニポート ドライバーは、*QOS INF キーワード設定がレジストリに存在する場合のみ、アダプターがサポートする NDIS QoS ハードウェア機能を登録する必要があります。 この場合、ドライバーは、それらの機能がアダプターで有効になっているか無効になっているか関係なく、その NDIS QoS ハードウェア機能を登録する必要があります。

  • ネットワーク アダプターで現在有効になっている NDIS QoS ハードウェア機能。

    ミニポート ドライバーの NDIS QoS ハードウェア機能は、レジストリの *QOS INF キーワード設定を使用して有効または無効にすることができます。 この設定は、ネットワーク アダプターの [詳細設定] プロパティ ページに表示されます。

NDIS QoS INF キーワード設定について詳しくは、「NDIS QoS の標準化された INF キーワード」をご覧ください。

ミニポート ドライバーは、次のように初期化された NDIS_QOS_CAPABILITIES 構造を通じて、基になるネットワーク アダプターのハードウェア NDIS QoS 機能を報告します。

  1. ミニポート ドライバーは、Header メンバーを初期化します。 ドライバーは、HeaderType メンバーを NDIS_OBJECT_TYPE_QOS_CAPABILITIES に設定します。

    NDIS 6.30 以降、ミニポート ドライバーは、HeaderRevision メンバーを NDIS_QOS_CAPABILITIES_REVISION_1 に Size メンバーを NDIS_SIZEOF_QOS_CAPABILITIES_REVISION_1 に設定します。

  2. 厳密な優先順位の伝送選択アルゴリズム (TSA) がネットワーク アダプターによってサポートされている場合、ミニポート ドライバーは、Flags メンバーに NDIS_QOS_CAPABILITIES_STRICT_TSA_SUPPORTED フラグを設定します。 このアルゴリズムについて詳しくは、「厳密な優先順位アルゴリズム」をご覧ください。

    NDIS 6.30 以降、IEEE データ センター ブリッジング (DCB) の NDIS QoS をサポートするミニポート ドライバーとネットワーク アダプターは、厳密な優先順位 TSA をサポートする必要があります。

  3. Media Access Control Security (MACsec) の処理をバイパスする機能がネットワーク アダプターによりサポートされている場合、ミニポート ドライバーは Flags メンバーに NDIS_QOS_CAPABILITIES_MACSEC_BYPASS_SUPPORTED フラグを設定します。 MACsec について詳しくは、「IEEE 802.1AE-2006 標準」をご覧ください。

    NDIS 6.30 以降、ネットワーク アダプターは MACsec 処理のバイパスをサポートする必要はありません。

  4. ミニポート ドライバーは、ネットワーク アダプターが サポートする NDIS QoS トラフィック クラスの最大数に MaxNumTrafficClasses メンバーを設定します。 トラフィック クラスは、QoS の送信 (またはエグレス) ポリシー (IEEE 802.1p の優先度レベルや帯域幅の割り当てなど) を定義します。 トラフィック クラスについて詳しくは、「NDIS QoS トラフィック クラス」をご覧ください。

    NDIS 6.30 以降、ネットワーク アダプターは、少なくとも 3 つのトラフィック クラスをサポートする必要があります。

  5. ミニポート ドライバーは、ネットワーク アダプターが Enhanced Transmission Selection (ETS) アルゴリズムで使用できる NDIS QoS トラフィック クラスの最大数に MaxNumEtsCapableTrafficClasses メンバーを設定します。 この値は、MaxNumTrafficClasses メンバーの値以下にする必要があります。

    ETS の詳細については、「拡張伝送選択 (ETS) アルゴリズム」を参照してください。

    ネットワーク アダプターが NDIS QoS をサポートするには、少なくとも 2 つの ETS 対応トラフィック クラスをサポートする必要があります。

  6. ミニポート ドライバーは、MaxNumPfcEnabledTrafficClasses メンバーを、ネットワーク アダプターが優先度ベースのフロー制御 (PFC) アルゴリズムで使用できる NDIS QoS トラフィック クラスの最大数に設定します。 この値は、MaxNumTrafficClasses メンバーの値以下にする必要があります。

    PFC の詳細については、「優先度ベースのフロー制御 (PFC)」を参照してください。

    ネットワーク アダプターが NDIS QoS をサポートするには、少なくとも 1 つのPFC 対応トラフィック クラスをサポートする必要があります。

NDIS がミニポート ドライバーの MiniportInitializeEx 関数を呼び出したとき、ドライバーは、次の手順に従って、ネットワーク アダプターの NDIS QoS 属性を登録します。

  1. ミニポート ドライバーは、NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 構造を初期化します。

    ミニポート ドライバーは、HardwareQOSCapabilities メンバーを、以前に初期化された NDIS_QOS_CAPABILITIES 構造へのポインターに設定します。

    *QOS INF キーワードのレジストリ設定の値が 1 の場合、ネットワーク アダプターで NDIS QoS 機能が有効になります。 ミニポート ドライバーは、CurrentQOSCapabilities メンバーを同じ NDIS_QOS_CAPABILITIES 構造へのポインターに設定します。

    *QOS INF キーワードのレジストリ設定の値が 0 の場合、ネットワーク アダプターで NDIS QoS 機能が無効になります。 ミニポート ドライバーは、CurrentQOSCapabilities メンバーを NULL に設定する必要があります。

  2. ドライバーは NdisMSetMiniportAttributes を呼び出し、MiniportAttributes パラメーターを NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 構造へのポインターに設定します。

アダプターの初期化プロセスの詳細については、「ミニポート アダプターの初期化」を参照してください。