次の方法で共有


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]

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

関連項目

OID_QOS_OFFLOAD_ENUM_SQS

OID_QOS_OFFLOAD_CREATE_SQ

NDIS_QOS_OFFLOAD_CAPABILITIES

NDIS_QOS_SQ_ARRAY

NDIS_OBJECT_HEADER

NDIS QoS トラフィック クラス