NDIS_QOS_SQ_PARAMETERS構造体 (ntddndis.h)
NDIS_QOS_SQ_PARAMETERS 構造体には、NDIS サービス品質 (QoS) スケジューラ キュー (SQ) のパラメーターが含まれています。
構文
typedef struct _NDIS_QOS_SQ_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
NDIS_QOS_SQ_ID SqId;
NDIS_QOS_SQ_TYPE SqType;
BOOLEAN TcEnabledTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
ULONG TcTransmitBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
ULONG TcTransmitBandwidthReservationTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
ULONG TcReceiveBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
ULONG CrossTcTransmitBandwidthCap;
ULONG MaxNumSqInputs;
} NDIS_QOS_SQ_PARAMETERS, *PNDIS_QOS_SQ_PARAMETERS;
メンバーズ
Header
NDIS_QOS_SQ_PARAMETERS 構造体の型、リビジョン、およびサイズ。 このメンバーは、NDIS_OBJECT_HEADER 構造体として書式設定されます。
ミニポート ドライバーは、ヘッダー の 型 メンバーをNDIS_OBJECT_TYPE_DEFAULT、リビジョン メンバーをNDIS_QOS_SQ_PARAMETERS_REVISION_2に設定し、サイズ メンバーをNDIS_SIZEOF_QOS_SQ_PARAMETERS_REVISION_2する必要があります。
Flags
フラグのビットごとの OR を含む ULONG 値。 これらのフラグは、SQ で有効になっているハードウェア QoS オフロード機能のその他の機能と属性を指定します。 次のフラグが定義されています。
NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED
このフラグが設定されている場合、この SQ で送信帯域幅の上限が有効になります。
NDIS_QOS_SQ_TRANSMIT_RESERVATION_ENABLED
このフラグが設定されている場合、この SQ では送信帯域幅の予約が有効になります。
NDIS_QOS_SQ_RECEIVE_CAP_ENABLED
このフラグが設定されている場合、この SQ で受信帯域幅の上限が有効になります。
SqId
この SQ の SQ ID を含む NDIS_QOS_SQ_ID。 NDIS は、この ID を割り当てます。
SqType
この SQ の型を含む NDIS_QOS_SQ_TYPE。 これは、NDIS_QOS_SQ_TYPEの列挙型定義から NdisQSQosSqSQTypeStandard できます。
TcEnabledTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
各トラフィック クラス (0 から NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES) がこの SQ でのスケジュール設定を有効にするかどうかを指定する BOOLEAN 値の配列。
このフィールドが TRUE トラフィック クラス (TC) は、次の表で読み取って検証する必要があり、また、crossTcTransmitBandwidthCap によってレート制限されます。
このフィールドが FALSE TC は、CrossTcTransmitBandwidthCap または以下の TC ごとのテーブルからの QoS レート制限には関与しません。
TcTransmitBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
各 TC の送信帯域幅の上限を Mbps で指定する ULONG 要素の配列。 要素は、NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED
フラグが設定され、TcEnabledTable 内の対応する要素 TRUE 場合にのみ有効です。
0 の値を持つ要素に上限はありません。
NIC は、このテーブルで指定されたレートを超える場合、特定の TC に対してこの SQ 上のすべての送信パケットをキューに入れます。
TcTransmitBandwidthReservationTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
0 – ULONG_MAXからの相対値で、各 TC の送信帯域幅予約を指定する ULONG 要素の配列。 要素は、NDIS_QOS_SQ_TRANSMIT_RESERVATION_ENABLED
フラグが設定され、TcEnabledTable 内の対応する要素 TRUE 場合にのみ有効です。
0 の値を持つ要素は、この SQ/TC 上の送信パケットがその TC の既定の SQ 予約を共有することを意味します。
他の SQ がこの TC の予約を満たすために帯域幅を必要とする場合、NIC は特定の TC に対してこの SQ 上の送信パケットをキューに入れます。
TcReceiveBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
各 TC の受信帯域幅の上限を Mbps で指定する ULONG 要素の配列。 要素は、NDIS_QOS_SQ_RECEIVE_CAP_ENABLED
フラグが設定され、TcEnabledTable 内の対応する要素 TRUE 場合にのみ有効です。
0 の値を持つ要素に上限はありません。
これは、受信帯域幅の上限を有効にするオプションの機能です。 受信上限のサポートをアドバタイズする NIC は、この SQ の特定の TC がこの配列で指定されたレートを超えた後 (NIC のスケジューリングの実装に基づいて) 受信パケットを破棄する必要があります。
CrossTcTransmitBandwidthCap
NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED
フラグが設定されている場合、tcEnabledTable 内の対応する要素が TRUE されている TC 間のトラフィックの送信帯域幅の上限を指定する ULONG 値。
MaxNumSqInputs
OS が SQ に関連付ける可能性のある数の vPort でミニポートに "ヒント" を提供する ULONG 値。 SQ の作成後にこの値を変更することはできません。
ミニポートは、リソースをより適切に管理するために、このヒントを使用できます。 ミニポートは、要求を満たすためにベスト エフォート サービスを提供しますが、SQ の作成時または vPort の関連付け時にリソースが不足しているために失敗する可能性があります。
ミニポートは、この値が NDIS_QOS_OFFLOAD_CAPABILITIESでミニポートによって指定された MaxNumSQInputs 値を超えた場合にエラーを返す必要があります。
備考
NDIS_QOS_SQ_PARAMETERS 構造体は、NIC スイッチで作成された SQ を列挙する OID クエリ要求 OID_QOS_OFFLOAD_ENUM_SQSで返されます。
NDIS_QOS_SQ_PARAMETERS は OID メソッド要求 OID_QOS_OFFLOAD_CREATE_SQでも返され、ミニポート アダプターに新しい SQ が作成されます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | NDIS 6.85 以降でサポートされています。 |
サポートされる最小サーバー | Windows Server 2022 |
ヘッダー | ntddndis.h (ndis.h を含む) |