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 結構。
迷你埠驅動程序必須將 Header 的 Type 成員設定為 [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 識別碼 的NDIS_QOS_SQ_ID 。 NDIS 會指派此標識碼。
SqType
包含此 SQ 類型的 NDIS_QOS_SQ_TYPE 。 這可以是 NdisQSQSQSqSQTypeStandard ,來自 NDIS_QOS_SQ_TYPE的列舉定義。
TcEnabledTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
BOOLEAN 值的陣列,指定是否啟用每個流量類別 (從 0 到NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES) 的排程。
任何流量類別 (TC) ,此字段應讀取並驗證下表中的 TRUE ,而且也會受到 CrossTcTransmitBandwidthCap 的速率限制。
此欄位為 FALSE 的任何 TC 都不會參與 CrossTcTransmitBandwidthCap 或以下每個 TC 數據表的 QoS 速率限制。
TcTransmitBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
ULONG 元素的陣列,指定每個 TC 的傳輸頻寬上限,以 Mbps 為單位。 只有在 NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED
設定 旗標且 TcEnabledTable 中的對應元素為 TRUE 時,元素才有效。 值為 0 的項目沒有上限。
如果 NIC 超過此表格中指定的速率,則 NIC 應該將此 SQ 上的任何傳輸封包排入佇列,以取得指定的 TC。
TcTransmitBandwidthReservationTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
ULONG 專案的陣列,指定每個 TC 的傳輸頻寬保留專案,其相對值為 0 – ULONG_MAX。 只有在 NDIS_QOS_SQ_TRANSMIT_RESERVATION_ENABLED
設定 旗標且 TcEnabledTable 中的對應元素為 TRUE 時,元素才有效。 值為 0 的專案表示在此 SQ/TC 上傳輸封包會共用該 TC 的預設 SQ 保留。
如果其他 SQ 需要頻寬才能符合此 TC 的保留,NIC 應該將此 SQ 上的任何傳輸封包排入佇列。
TcReceiveBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
ULONG 元素的陣列,指定每個 TC 的接收頻寬上限,以 Mbps 為單位。 只有在 NDIS_QOS_SQ_RECEIVE_CAP_ENABLED
設定 旗標且 TcEnabledTable 中的對應元素為 TRUE 時,元素才有效。 值為 0 的項目沒有上限。
這是啟用接收頻寬上限的選擇性功能。 公告接收上限支援的 NIC 應該在此 SQ 上的指定 TC 超過此數位列中指定的速率之後,卸除任何接收封包, (根據 NIC 的排程實作) 。
CrossTcTransmitBandwidthCap
ULONG 值,指定如果已設定旗標,NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED
則會在 TCEnabledTable 中對應元素為 TRUE 的 DC 之間傳輸頻寬上限。
MaxNumSqInputs
ULONG 值,在 OS 與 SQ 相關聯的可能 vPort 數目上,為迷你埠提供「提示」。 建立 SQ 之後,無法修改此值。
迷你埠可能會使用此提示來更妥善地管理其資源。 迷你埠會提供最佳服務來滿足要求,但可能會因為 SQ 建立時間或 vPort 關聯時間的資源不足而失敗。
如果此值超過NDIS_QOS_OFFLOAD_CAPABILITIES中迷你埠所指定的 MaxNumSQInputs 值,迷你埠必須傳回錯誤。
備註
NDIS_QOS_SQ_PARAMETERS結構會在 OID 查詢要求OID_QOS_OFFLOAD_ENUM_SQS中傳回,它會列舉在 NIC 參數上建立的 SQ。
NDIS_QOS_SQ_PARAMETERS 也會在 OID 方法要求 OID_QOS_OFFLOAD_CREATE_SQ中傳回,這會在迷你埠配接器上建立新的 SQ。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.85 和更新版本支援。 |
最低支援的伺服器 | Windows Server 2022 |
標頭 | ntddndis.h (包含 ndis.h) |