共用方式為


將接收篩選器移至虛擬埠

過度處理驅動程式會發出物件識別碼 (OID) 組 OID_RECEIVE_FILTER_MOVE_FILTER 要求,以將接收篩選從虛擬埠 (VPort) 移至 NIC 交換器上的另一個 VPort。 一般而言,如果下列任一條件成立,則過度處理驅動程式,例如虛擬化堆疊,會發出此 OID 要求:

  • 虛擬化堆疊會在預設 VPort 上設定接收篩選。 此篩選器包含 MAC () 位址和虛擬 LAN (VLAN 的媒體存取控制) 參數,這些參數適用于 Hyper-V 子分割中公開的虛擬機器 (VM) 網路介面卡。 這可讓 VM 網路介面卡與基礎網路介面卡之間透過軟體型綜合資料路徑轉送封包。

    在配置 PCI Express (PCIe) Virtual Function (VF) ,並將 VF 附加至子分割區之後,虛擬化堆疊會在 VF 上建立非預設的 VPort。 然後,虛擬化堆疊會將 VM 網路介面卡的接收篩選從預設 VPort 移至連結至 VF 的非預設 VPort。 這可讓封包在 VM 網路介面卡與基礎網路介面卡之間,透過硬體型 VF 資料路徑轉送。

    如需這些資料路徑的詳細資訊,請參閱 SR-IOV 資料路徑

  • VF 已與客體作業系統仍在執行的 Hyper-V 子分割區中斷連結。 在此情況下,過度配置驅動程式會發出 OID 集合要求,將 VM 網路介面卡的接收篩選從非預設 VPort 移至連結至 PF 的預設 VPort。 發生這種情況時,封包流量會還原為綜合資料路徑。

若要將接收篩選從一個 VPort 移至另一個 VPort,過度處理驅動程式會發出 OID 集合 要求OID_RECEIVE_FILTER_MOVE_FILTERNDIS_OID_REQUEST結構的InformationBuffer成員包含NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS結構的指標。

在過度配置驅動程式發出 OID_RECEIVE_FILTER_MOVE_FILTER 要求之前,它必須以下列方式初始化 NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS 結構:

  • 驅動程式會將 FilterId 成員設定為先前配置之接收篩選準則之識別碼的識別碼。

    注意 過度套用驅動程式已從先前的 OID 方法要求取得 OID_RECEIVE_FILTER_SET_FILTEROID_RECEIVE_FILTER_ENUM_FILTERS的篩選識別碼。

  • 驅動程式會將 SourceQueueId 成員設定為 NDIS_DEFAULT_RECEIVE_QUEUE_ID。

  • 驅動程式會將 SourceVPortId 成員設定為先前設定此篩選之 VPort 的識別碼。

  • 驅動程式會將 DestQueueId 成員設定為 NDIS_DEFAULT_RECEIVE_QUEUE_ID。

  • 驅動程式會將 DestVPortId 成員設定為要移動此篩選之 VPort 的識別碼。

NDIS 會先驗證 NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS 的成員,再將 OID 集合要求轉送至 PF 迷你埠驅動程式。

當 PF 迷你埠驅動程式處理此 OID 集合要求時,它必須在不可部分完成的作業中移動接收篩選。 驅動程式必須能夠設定網路介面卡,以同時從接收佇列和 VPort 移除篩選,並將它設定在不同的接收佇列和 VPort 上。