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 中, DefaultQueue 和 PrimaryProcessor 也會使用 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 |
|
NDIS_STATUS_INVALID_PARAMETER | 標頭或 OID 本身中的其他欄位包含不正確值。 |
規格需求
版本:Windows 10版本 1709標頭:Ntddndis.h (包含 Ndis.h)