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 を含む)

こちらもご覧ください

OID_QOS_OFFLOAD_ENUM_SQS

OID_QOS_OFFLOAD_CREATE_SQ

NDIS_QOS_OFFLOAD_CAPABILITIES

NDIS_QOS_SQ_ARRAY

NDIS_OBJECT_HEADER

NDIS QoS トラフィック クラス