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 構造体として書式設定されます。
ミニポート ドライバーは、ヘッダーの Type メンバーをNDIS_OBJECT_TYPE_DEFAULT、リビジョン メンバーをNDIS_QOS_SQ_PARAMETERS_REVISION_2に、Size メンバーを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]
この SQ でのスケジュール設定に対して各トラフィック クラス (0 からNDIS_QOS_MAXIMUM_TRAFFIC_CLASSES) を有効にするかどうかを指定する 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]
各 TC の送信帯域幅予約を 0 から ULONG_MAXの相対値で指定する 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
フラグが設定されている場合、 TcEnabledTable 内の対応する要素が TRUE である TC 間のトラフィックの送信帯域幅上限を指定する NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED
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 |
Header | ntddndis.h (ndis.h を含む) |