共用方式為


指出遠端 NDIS QoS 參數的變更

支援 NDIS 服務品質的迷你埠驅動程式 (QoS) 會在第一次從對等接收遠端 NDIS QoS 參數或稍後變更時發出 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 狀態指示。 迷你埠驅動程式會透過 IEEE 802.1Qaz 資料中心橋接 Exchange (DCBX) 通訊協定,從遠端對等接收這些 QoS 參數。

迷你埠驅動程式必須遵循下列指導方針來發出 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 狀態指示:

  • 如果迷你埠驅動程式尚未從遠端對等收到 DCBX 框架,則不得發出 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 狀態指示。

  • 迷你埠驅動程式必須先從遠端對等收到 QoS 設定之後發出 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 狀態指示。

    注意 迷你埠驅動程式必須發出此狀態指示,如果網路介面卡在設定驅動程式的本機 QoS 參數之前,從對等接收遠端 QoS 參數設定。 如需詳細資訊,請參閱 設定本機 NDIS QoS 參數

  • 在此初始狀態指示之後,迷你埠驅動程式應該只會在判斷遠端對等上的 QoS 設定變更時發出 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 狀態指示。

    注意 迷你埠驅動程式不應該發出 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 狀態指示,如果遠端 NDIS QoS 參數沒有任何變更。 如果驅動程式確實進行這種類型的狀態指示,NDIS 可能不會將指示傳遞至過度運作的驅動程式。

注意 迷你埠驅動程式必須在目前啟用 NDIS QoS 功能時發出NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE狀態指示。 從 Windows Server 2012 開始,無論是否已安裝 Microsoft DCB 伺服器功能,這些指示都允許系統管理員檢視 NDIS QoS 和資料中心橋接 (DCB) 設定。

發出NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE狀態指示的指導方針

迷你埠驅動程式會在發出 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 狀態指示時遵循下列步驟:

  1. 迷你埠驅動程式會配置足以包含下列大小的緩衝區:

    • 包含 NDIS QoS 組態設定以及 NDIS QoS 流量類別之全域指令引數的 NDIS_QOS_PARAMETERS 結構。

    • NDIS_QOS_CLASSIFICATION_ELEMENT結構的陣列。 每個結構都會指定由封包資料模式所定義的流量分類, (條件) 和相關聯的 IEEE 802.1p 優先順序層級 (動作) 。 如果網路介面卡在傳輸或 輸出中找到符合條件的封包模式,則會將相關聯的優先順序層級指派給封包。 介面卡也會根據優先順序層級,將其他 NDIS QoS 原則套用至封包。

  2. 迷你埠會使用遠端 NDIS QoS 參數來初始化 NDIS_QOS_PARAMETERS 結構。 驅動程式必須提供從遠端對等所傳送 DCBX 框架接收的完整遠端參數集。

    當迷你埠驅動程式初始化Header成員時,它會將HeaderType成員設定為 NDIS_OBJECT_TYPE_QOS_PARAMETERS。 迷你埠驅動程式會將HeaderRevision成員設定為 NDIS_QOS_PARAMETERS_REVISION_1,並將Size成員設定為 NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1。

    迷你埠驅動程式會設定適當的 NDIS_QOS_PARAMETERS_Xxx_CHANGED 旗標,如果對應的成員包含自迷你埠驅動程式先前發出 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 狀態指示之後已變更的資料。

    注意 設定這些 NDIS_QOS_PARAMETERS_Xxx_CHANGED 旗標是選擇性的。 NDIS 一律假設已指定 NDIS_QOS_PARAMETERS 的成員,即使它們未從先前 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 狀態指示變更也一樣。

    迷你埠驅動程式會設定 Flags 成員,以指定 包含在NDIS_QOS_PARAMETERS 結構成員中的資料狀態資訊。

    例如,迷你埠驅動程式會在Flags成員中設定適當的NDIS_QOS_PARAMETERS_Xxx_CHANGED旗標,這些成員包含自迷你埠驅動程式先前發出NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE狀態指示之後已變更的資料。

    如需如何設定 Flags 成員的詳細資訊,請參閱 設定 標成員的指導方針

  3. 迷你埠驅動程式會初始化遠端 NDIS QoS 參數中每個流量分類的 NDIS_QOS_CLASSIFICATION_ELEMENT 結構。 驅動程式會將這些元素新增至緩衝區中 NDIS_QOS_PARAMETERS 結構的結尾。

    注意 迷你埠驅動程式不得在任何NDIS_QOS_CLASSIFICATION_ELEMENT結構的 Flags 成員中設定 NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT 旗標。

    驅動程式會將NDIS_QOS_PARAMETERS結構的NumClassificationElements成員設定為數組中的分類元素數目。 驅動程式會將 FirstClassificationElementOffset 成員設定為緩衝區開頭第一個專案的位元組位移。 驅動程式也會將 ClassificationElementSize 成員設定為數組中每個元素的長度,以位元組為單位。

    注意 從 NDIS 6.30 開始,迷你埠驅動程式必須將 ClassificationElementSize 成員設定為 sizeof(NDIS_QOS_CLASSIFICATION_ELEMENT) 。

  4. 迷你埠驅動程式會以下列方式初始化狀態指示 的NDIS_STATUS_INDICATION 結構:

    • StatusCode成員必須設定為 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE。

    • StatusBuffer成員必須設定為包含遠端 NDIS QoS 參數之緩衝區的指標。

    • StatusBufferSize成員必須設定為緩衝區的長度,以位元組為單位。

  5. 迷你埠驅動程式會呼叫 NdisMIndicateStatusEx來發出狀態指示。 驅動程式必須將指標傳遞給StatusIndication參數NDIS_STATUS_INDICATION結構。

設定旗標成員的指導方針

迷你埠驅動程式會在NDIS_QOS_PARAMETERS結構的Flags成員中設定下列旗標,以指定網路介面卡上已設定或變更哪些操作 NDIS QoS 參數:

NDIS_QOS_PARAMETERS_ETS_CONFIGURED
如果設定此旗標,迷你埠驅動程式已使用下列成員中包含的 ETS 參數來設定網路介面卡:

  • NumTrafficClasses

  • PriorityAssignmentTable

  • TcBandwidthAssignmentTable

  • TsaAssignmentTable

注意 迷你埠驅動程式必須支援 ETS,才能支援 DCB 的 NDIS QoS。 不過,此旗標的設定不會指定網路介面卡是否支援 ETS。 相反地,此旗標的設定只會指定是否在網路介面卡上設定 ETS 參數。

NDIS_QOS_PARAMETERS_ETS_CHANGED
如果設定此旗標,下列成員中已變更一或多個 ETS 參數:

  • NumTrafficClasses

  • PriorityAssignmentTable

  • TcBandwidthAssignmentTable

  • TsaAssignmentTable

NDIS_QOS_PARAMETERS_PFC_CONFIGURED
如果設定此旗標,迷你埠驅動程式已使用 PfcEnable 成員中包含的 PFC 設定來設定網路介面卡。

注意 迷你埠驅動程式必須支援 PFC,才能支援 DCB 的 NDIS QoS。 此旗標的設定不會指定網路介面卡是否支援 PFC。 相反地,此旗標的設定只會指定是否在網路介面卡上啟用 PFC 參數。

NDIS_QOS_PARAMETERS_PFC_CHANGED
如果設定此旗標, PfcEnable 成員中已變更一或多個 PFC 設定。

NDIS_QOS_PARAMETERS_CLASSIFICATION_CONFIGURED
如果設定此旗標,迷你埠驅動程式已使用下列成員中指定的 QoS 流量分類參數來設定網路介面卡:

  • NumClassificationElements

  • ClassificationElementSize

  • FirstClassificationElementOffset

NDIS_QOS_PARAMETERS_CLASSIFICATION_CHANGED
如果設定此旗標,下列成員中已變更一或多個 QoS 流量分類參數:

  • NumClassificationElements

  • ClassificationElementSize

  • FirstClassificationElementOffset

注意如果NDIS_QOS_PARAMETERS結構包含 NDIS QoS 參數設定,則必須設定NDIS_QOS_PARAMETERS_Xxx_CONFIGURED旗標。 不論設定是否已變更,迷你埠驅動程式都必須設定這些旗標。 不過,驅動程式只能針對已變更的設定,設定 NDIS_QOS_PARAMETERS_Xxx_CHANGED 旗標。

指示無效遠端 NDIS QoS 參數的指導方針

如果下列條件成立,迷你埠驅動程式必須使其遠端 QoS 參數失效:

  • 遠端 QoS 參數的存留時間 (TTL) 值到期。

    注意 DCBX 會透過 IEEE 802.1AB-2005 標準中指定的 LLDP) 通訊協定 (LLDP 傳輸。 LLDP 畫面一律包含 TTL 欄位。

  • 另一個資料連結對等會在 TTL 值到期之前傳送 DCBX 框架。 此案例稱為 多對等 條件。 DCBX 要求迷你埠驅動程式只會維護一組從單一資料連結對等接收的遠端 QoS 參數。

    當發生多對等狀況時,迷你埠驅動程式必須使所有遠端 QoS 參數失效,直到所有接收的 DCBX 畫面格的 TTL 值到期為止。

當迷你埠驅動程式將其遠端 NDIS QoS 參數失效時,它必須在發出 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 狀態指示時遵循下列步驟:

  1. 因為迷你埠驅動程式未報告任何有效的遠端 NDIS QoS 參數,所以它必須先以零填入 NDIS_QOS_PARAMETERS 結構。

    當迷你埠驅動程式初始化這個結構的Header成員時,它會將HeaderType成員設定為 NDIS_OBJECT_TYPE_QOS_PARAMETERS。 迷你埠驅動程式會將HeaderRevision成員設定為 NDIS_QOS_PARAMETERS_REVISION_1,並將Size成員設定為 NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1。

    迷你埠驅動程式會在Flags成員中設定適當的NDIS_QOS_PARAMETERS_Xxx_CHANGED旗標。

  2. 迷你埠驅動程式會以下列方式初始化狀態指示 的NDIS_STATUS_INDICATION 結構:

    • StatusCode成員必須設定為 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE。

    • StatusBuffer成員必須設定為NDIS_QOS_PARAMETERS結構的位址。

    • StatusBufferSize成員必須設定為 sizeof(NDIS_QOS_PARAMETERS)

  3. 迷你埠驅動程式會呼叫 NdisMIndicateStatusEx來發出狀態指示。 驅動程式必須將指標傳遞給StatusIndication參數NDIS_STATUS_INDICATION結構。