共用方式為


OID_GEN_RECEIVE_SCALE_PARAMETERS_V2

警告

本主題中的某些資訊與發行前產品有關,在正式發行前可能會大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。

RSSv2 僅在 Windows 10 版本 1809 中提供預覽。

OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 OID 會傳送至 支援 RSSv2的迷你埠驅動程式,以設定縮放實體的間接資料表以外的執行時間參數。 OID_GEN_RECEIVE_SCALE_PARAMETERS_V2會從 RSSv1 取代 OID_GEN_RECEIVE_SCALE_PARAMETERS OID,而且 NDIS 輕量篩選 (LFS) NDIS 6.80 之前看不到。 此 OID 是一般 OID,可以發出為查詢或設定要求。 它會在 IRQL == PASSIVE_LEVEL發出。 當 NDIS_OID_REQUEST_FLAGS_VPORT_ID_VALID 旗標設定在 NIC 交換器建立時,它可以以指定的 VPort 為目標。 否則,它會以原生 RSS 案例中的實體 NIC 為目標。

作為查詢,NDIS 和過度運用驅動程式可以使用OID_GEN_RECEIVE_SCALE_PARAMETERS_V2來查詢 NIC 的 RSS 參數。 NDIS 會傳回定義目前 RSS 參數 的NDIS_RECEIVE_SCALE_PARAMETERS_V2 結構。

做為 Set,此 OID 的目的是要執行下列動作:

  • 一開始,在原生 RSS 模式中設定縮放實體 (迷你埠介面卡,或在 VMQ 模式中設定 VPort) 。
  • 啟用或停用 RSS。
  • 在 RSS 模式中,執行非計時關鍵管理功能,例如變更雜湊索引鍵、雜湊類型和雜湊函式、佇列數目,或調整實體的間接資料表專案數目。

備註

啟用 RSS 並設定 RSS 參數可以在一個步驟中執行。 在上層使用此 OID 啟用 RSS 之後,調整實體的初始狀態如下所示:

  • 主要處理器變成 非使用中。
  • 預設處理器會變成 使用中
  • 所有 ITE 都會變成 作用中。
  • 迷你埠驅動程式會開始計算 RSS 雜湊、為所有封包設定對應的 OOB,並將封包導向間接資料表專案或預設處理器參數所指定的處理器。

啟用 RSS 之後,上層會發出 OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID,以將 ITE 移至不同的處理器。 在 RSSv2 中, DefaultQueuePrimaryProcessor 也會使用 OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES 移至不同的處理器。

在停用 RSS 的過程中,上層會將所有 ITE 指向主要處理器,再叫用此 OID 以關閉 RSS。 在此點之後,接收流量應該以主要處理器為目標。 不過,迷你埠驅動程式不應預期在刪除 VPort 之前停用 RSS。 上層可以將 VPort 上的接收篩選設定為零,因此確保沒有接收流量流經 VPort,然後繼續刪除 VPort 而不停用 RSS。

上層可確保在執行管理功能之前,不會違反重要的不變數。 例如:

  • 在變更佇列數目之前,上層會確保間接資料表不會參考比為 VPort 設定更多的處理器。 在變更 VMMQ-RESTRICTED 介面卡的間接資料表專案數目之前,上層可確保間接資料表的內容正規化為 2 的電源。

錯誤狀況和狀態碼

當發生錯誤時,此 OID 會傳回下列狀態碼:

狀態碼 錯誤狀況
NDIS_STATUS_INVALID_LENGTH OID 格式不正確。
NDIS_STATUS_NO_QUEUES 啟用 RSS 時,佇列數目會變更,但目前的間接資料表會參考比新佇列數目更多的處理器。
NDIS_STATUS_INVALID_DATA
  • 間接資料表的大小會減少,但不包含兩個重複模式的乘冪。
  • 在 RSS 狀態轉換 (開啟或關閉) 期間,變成作用中之方向參數的處理器不屬於適配卡的 RSS 處理器集。 請注意, 非使用中 方向參數只會追蹤處理器的寫入,而且不會強制執行。 當參數變成 使用中時,會在 RSS 狀態轉換期間強制執行。
NDIS_STATUS_INVALID_PARAMETER 標頭或 OID 本身中的其他欄位包含不正確值。

規格需求

版本:Windows 10版本 1709標頭:Ntddndis.h (包含 Ndis.h)

另請參閱