共用方式為


NDIS_RSS_SET_INDIRECTION_ENTRY結構(ntddndis.h)

警告

本主題中的一些資訊與發行前版本產品有關,在發行前可能會大幅修改。 Microsoft未就此處提供的資訊提供任何明示或默示擔保。

RSSv2 僅在 Windows 10 版本 1803 中為預覽版。

NDIS_RSS_SET_INDIRECTION_ENTRY 結構代表用來設定單一間接數據表專案的命令。 它包含在 NDIS_RSS_SET_INDIRECTION_ENTRIES 結構中,用於 OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID 中。 OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES是 RSS 第 2 版 (RSSv2)同步 OID

語法

typedef struct _NDIS_RSS_SET_INDIRECTION_ENTRY {
  NDIS_NIC_SWITCH_ID       SwitchId;
  NDIS_NIC_SWITCH_VPORT_ID VPortId;
  ULONG                    Flags;
  USHORT                   IndirectionTableIndex;
  PROCESSOR_NUMBER         TargetProcessorNumber;
  NDIS_STATUS              EntryStatus;
} NDIS_RSS_SET_INDIRECTION_ENTRY, *PNDIS_RSS_SET_INDIRECTION_ENTRY;

成員

SwitchId

NDIS_NIC_SWITCH_ID值,表示 VPort 所在的 NIC 參數。

交換器標識碼是介於零和網路適配器所支援之交換器數目之間的整數。 NDIS_DEFAULT_SWITCH_ID值表示預設網路適配器交換器。

此欄位應該設定為原生 RSS 案例中的 0

VPortId

表示 VPort 識別碼的NDIS_NIC_SWITCH_VPORT_ID值。

此欄位應該設定為原生 RSS 案例中的 0

Flags

ULONG 值,其中包含一個位 OR 旗標。 這個成員會限定這個結構中的資訊。

可能的旗標如下所示:

價值 意義
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_PRIMARY_PROCESSOR
表示 NDIS_RSS_SET_INDIRECTION_ENTRY 指的是縮放實體的主要處理器。 不會使用間接取值數據表。 當主要處理器為 *非使用中* 時(RSS 已啟用),迷你埠驅動程式應該追蹤已設定此旗標的專案更新,以便知道停用 RSS 時,哪個處理器會是主要處理器。
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_DEFAULT_PROCESSOR
表示 NDIS_RSS_SET_INDIRECTION_ENTRY 指的是縮放實體的默認處理器。 默認處理器會處理未隱藏的封包。 不會使用間接取值數據表。 當預設處理器為 *非使用中* 時(RSS 已停用),迷你埠驅動程式應該追蹤已設定此旗標的專案更新,以便知道啟用 RSS 時,哪個處理器會預設。

IndirectionTableIndex

ITE 的哈希索引,目前指向目前的 CPU,並正在修改以指向另一個處理器。 當間接數據表 非使用中 時(RSS 已停用),迷你埠驅動程式應該追蹤間接數據表專案的更新,以便在啟用 RSS 時具有正確的間接數據表。

TargetProcessorNumber

ITE 應該在完成時指向的目標處理器編號。 迷你埠驅動程序應該會成功將ITE 從目前的處理器移至目前的處理器。

EntryStatus

NDIS_STATUS程序代碼,指出這個項目的移動作業狀態。 由於 NDIS_RSS_SET_INDIRECTION_ENTRY 用於同步 OID 呼叫的內容中,所以迷你埠驅動程式無法傳回此成員的 NDIS_STATUS_PENDING

為了簡化迷你埠驅動程序的實作,上層通訊協定會將此字段初始化為NDIS_STATUS_PENDING。 迷你埠驅動程序必須以成功或失敗的 NDIS 狀態代碼覆寫NDIS_STATUS_PENDING。 如果上層偵測到此欄位在 OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID 完成時仍NDIS_STATUS_PENDING,則會導致系統錯誤檢查,並指出迷你埠驅動程式發生錯誤。

重要

群組中的所有 NDIS_RSS_SET_INDIRECTION_ENTRY 結構,包含在 NDIS_RSS_SET_INDIRECTION_ENTRIES 結構中,都必須以相同的 EntryStatus標示。

如果發生這個移動命令的錯誤,請將 EntryStatus 設定為該錯誤條件的下列其中一個狀態代碼:

狀態代碼 錯誤條件
NDIS_STATUS_INVALID_PARAMETER
  • SwitchIdVPortId 成員無效。
  • 旗標 成員無效。
  • IndirectionTableIndex 成員超過 NDIS_RECEIVE_SCALE_PARAMETERS_V2 結構中目前設定 的 numberOfIndirectionTableEntries
NDIS_STATUS_INVALID_PORT_STATE VPort 未啟動或處於其他狀態,導致它無法接受RSSv2 OID。
NDIS_STATUS_NOT_ACCEPTED 動作專案 CPU 無效。
NDIS_STATUS_INVALID_DATA 對於作用中 轉向參數,新處理器不是適配卡 RSS 處理器集的一部分。 請注意,非使用中 參數只需要追蹤。 稍後會在 RSS 狀態轉換期間進行驗證(在 關閉)。
NDIS_STATUS_NO_QUEUES 命令專案群組會失敗該群組所指定 VPort 的「佇列數目」檢查。

要求

要求 價值
最低支援的用戶端 NDIS 6.80 和更新版本支援。
標頭 ntddndis.h (包括 Ndis.h)

另請參閱

NDIS_RSS_SET_INDIRECTION_ENTRIES

OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES

接收端調整第 2 版 (RSSv2)

NDIS 6.80 中的同步 OID 要求介面