配置 VMMQ 的 VPorts
當 虛擬機器多個佇列 (VMMQ) 功能出現時,NDIS 會配置 VPorts。
NDIS 會發出 OID_NIC_SWITCH_CREATE_VPORT OID 要求,在迷你埠配接器上建立非預設 VPort。 建立 RSS 實體函式 (PF) VPort 時,NDIS 會初始化 NDIS_NIC_SWITCH_VPORT_PARAMETERS 結構,如下所示:
NDIS 會將 AttachedFunctionId 欄位設定為 NDIS_PF_FUNCTION_ID。
如果已啟用 VMMQ,NDIS 會將 [NumQueuePairs ] 欄位設定為應該用於此 VPort 的 VMMQ 佇列配對數目。 此數位包含此 VPort 的預設 RSS 處理器。 保證處理器總數不會超過此數目。 如果 VMMQ 已停用,NDIS 會將此值設定為 一個。
如果已啟用 VMMQ, ProcessorAffinity 欄位會定義迷你埠介面卡必須用於此 VPort 的潛在 RSS 處理器位元遮罩。 網路堆疊用來填入 VPort 間接資料表專案的處理器是這個位元遮罩所識別之處理器的子集。 遮罩將是從 呼叫 NdisGetRssProcessorInformation 傳回的 RSS 處理器子集,而且設定位數目可能會超過 VPort 所要求的 RSS 佇列數目。 如果 VMMQ 已停用,迷你埠配接器必須在設定 VPort 佇列的親和性時,使用此位元遮罩中指定的最低處理器編號。
NDIS 會設定 NDIS_NIC_SWITCH_VPORT_PARAMS_NUM_QUEUE_PAIRS_CHANGED 旗標,指出 VPort 建立之後, NumQueuePairs 成員已更新。 啟用 VMMQ 時,可以更新預設和非預設 VPorts 的佇列數目。