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 機能を報告します。
ミニポート ドライバーは、Header メンバーを初期化します。 ドライバーは、Header の Type メンバーを NDIS_OBJECT_TYPE_QOS_CAPABILITIES に設定します。
NDIS 6.30 以降、ミニポート ドライバーは、Header の Revision メンバーを NDIS_QOS_CAPABILITIES_REVISION_1 に Size メンバーを NDIS_SIZEOF_QOS_CAPABILITIES_REVISION_1 に設定します。
厳密な優先順位の伝送選択アルゴリズム (TSA) がネットワーク アダプターによってサポートされている場合、ミニポート ドライバーは、Flags メンバーに NDIS_QOS_CAPABILITIES_STRICT_TSA_SUPPORTED フラグを設定します。 このアルゴリズムについて詳しくは、「厳密な優先順位アルゴリズム」をご覧ください。
注 NDIS 6.30 以降、IEEE データ センター ブリッジング (DCB) の NDIS QoS をサポートするミニポート ドライバーとネットワーク アダプターは、厳密な優先順位 TSA をサポートする必要があります。
Media Access Control Security (MACsec) の処理をバイパスする機能がネットワーク アダプターによりサポートされている場合、ミニポート ドライバーは Flags メンバーに NDIS_QOS_CAPABILITIES_MACSEC_BYPASS_SUPPORTED フラグを設定します。 MACsec について詳しくは、「IEEE 802.1AE-2006 標準」をご覧ください。
注 NDIS 6.30 以降、ネットワーク アダプターは MACsec 処理のバイパスをサポートする必要はありません。
ミニポート ドライバーは、ネットワーク アダプターが サポートする NDIS QoS トラフィック クラスの最大数に MaxNumTrafficClasses メンバーを設定します。 トラフィック クラスは、QoS の送信 (またはエグレス) ポリシー (IEEE 802.1p の優先度レベルや帯域幅の割り当てなど) を定義します。 トラフィック クラスについて詳しくは、「NDIS QoS トラフィック クラス」をご覧ください。
注 NDIS 6.30 以降、ネットワーク アダプターは、少なくとも 3 つのトラフィック クラスをサポートする必要があります。
ミニポート ドライバーは、ネットワーク アダプターが Enhanced Transmission Selection (ETS) アルゴリズムで使用できる NDIS QoS トラフィック クラスの最大数に MaxNumEtsCapableTrafficClasses メンバーを設定します。 この値は、MaxNumTrafficClasses メンバーの値以下にする必要があります。
ETS の詳細については、「拡張伝送選択 (ETS) アルゴリズム」を参照してください。
注 ネットワーク アダプターが NDIS QoS をサポートするには、少なくとも 2 つの ETS 対応トラフィック クラスをサポートする必要があります。
ミニポート ドライバーは、MaxNumPfcEnabledTrafficClasses メンバーを、ネットワーク アダプターが優先度ベースのフロー制御 (PFC) アルゴリズムで使用できる NDIS QoS トラフィック クラスの最大数に設定します。 この値は、MaxNumTrafficClasses メンバーの値以下にする必要があります。
PFC の詳細については、「優先度ベースのフロー制御 (PFC)」を参照してください。
注 ネットワーク アダプターが NDIS QoS をサポートするには、少なくとも 1 つのPFC 対応トラフィック クラスをサポートする必要があります。
NDIS がミニポート ドライバーの MiniportInitializeEx 関数を呼び出したとき、ドライバーは、次の手順に従って、ネットワーク アダプターの NDIS QoS 属性を登録します。
ミニポート ドライバーは、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 に設定する必要があります。
ドライバーは NdisMSetMiniportAttributes を呼び出し、MiniportAttributes パラメーターを NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 構造へのポインターに設定します。
アダプターの初期化プロセスの詳細については、「ミニポート アダプターの初期化」を参照してください。