篩選擴充套件
Hyper-V 可延伸交換器篩選延伸模組可以檢查、修改和插入封包到可延伸交換器數據路徑中。 根據可延伸的交換器埠和交換器原則設定,延伸模組可以卸除封包,或排除其傳遞至一或多個目的地埠。
篩選擴充功能會在擷取輸入數據路徑的延伸模組和輸出數據路徑的轉送延伸模組之後被調用。 如需這些資料路徑的詳細資訊,請參閱 Hyper-V 可延伸交換器資料路徑。
篩選延伸模組可以使用在輸入資料路徑上取得的封包執行下列動作:
篩選封包流量,並強制執行自定義埠或交換器原則,以透過可延伸交換器傳遞封包。 當篩選延伸模組篩選輸入數據路徑中的封包時,它只能根據封包的來源埠和網路適配器連線套用篩選規則。 這項資訊會儲存在封包 NET_BUFFER_LIST 結構的頻外數據中,而且可以使用 NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL 巨集來取得。
注意 輸入資料路徑上取得的封包不包含目的埠。 篩選以目的地埠為基礎的封包只能在輸出數據路徑上取得的封包上完成。
自定義原則是由獨立軟體廠商 (ISV) 所定義。 此原則類型的屬性設定是透過 Hyper-V WMI 管理層來管理。 篩選延伸模組是透過 OID_SWITCH_PORT_PROPERTY_UPDATE 和 OID_SWITCH_PROPERTY_UPDATE的物件識別碼 (OID) 要求來設定這些屬性設定。
如需自定義可延伸埠或交換器原則的詳細資訊,請參閱 管理 Hyper-V 可延伸交換器原則。
注意 只有轉送延伸模組可以強制執行標準埠規則,以透過可延伸式交換器傳遞封包。
將新的、已修改或複製的封包插入輸入資料路徑。
如需詳細資訊,請參閱 Hyper-V 可延伸交換器傳送和接收作業。
篩選延伸模組可以使用輸出資料路徑上取得的封包來執行下列動作:
篩選封包流量,並強制執行自定義埠或交換器原則,以透過可延伸交換器傳遞封包。 當篩選延伸模組篩選輸出數據路徑中的封包時,它可以根據封包的來源或目的地埠套用篩選規則。 目的地埠數據會儲存在封包 NET_BUFFER_LIST 結構的 OOB 數據中。 延伸模組會藉由呼叫 getNetBufferListDestinations 函式來取得這項資訊。
排除將封包傳遞至一個或多個可延伸交換器目標埠。 這可讓篩選擴充套件排除將封包傳遞至可延伸交換器埠的動作。
如需如何排除封包傳遞至可延伸交換器埠的詳細資訊,請參閱 排除封包傳遞至可延伸交換器目的地埠。
藉由延遲封包在數據出路徑上的轉送,管理流量至一個或多個目的地埠。
例如,支援服務品質(QoS)功能的篩選延伸模組可能會想要立即呼叫 NdisFSendNetBufferLists,以轉送具有較高優先順序值的封包。 視流量流程而定,延伸模組可能會想要稍後轉送優先順序較低的封包。
修改封包數據。 如果篩選延伸模組需要修改封包中的數據,它必須先複製封包而不保留埠目的地。 然後,延伸模組必須將修改過的封包插入輸入數據路徑。 這可讓基礎延伸模組在修改的封包上強制執行原則,而轉送延伸模組可以新增埠目的地。
如需詳細資訊,請參閱 複製封包流量。
除了檢查 OID 要求和 NDIS 狀態指示之外,篩選延伸模組還可以執行下列動作:
針對適用的可延伸交換器 OID 傳回STATUS_DATA_NOT_ACCEPTED,以否決建立可延伸交換器埠或網路適配器連線。 例如,當驅動程式收到 OID_SWITCH_PORT_CREATE的 OID 集合要求時,篩選延伸模組可以傳回STATUS_DATA_NOT_ACCEPTED來否決埠建立要求。
注意 篩選延伸模組不會建立或刪除埠或網路適配器連線。 可延伸交換器的協定邊界會發出物件識別碼(OID),以通知基礎的篩選驅動程式有關埠或網路介面卡連線的建立或刪除。 如需詳細資訊,請參閱 Hyper-V 可延伸交換器埠和網路配接器狀態。
針對適用的可延伸交換器 OID 傳回STATUS_DATA_NOT_ACCEPTED,以否決新增或更新可延伸交換器或埠原則。 例如,篩選擴充功能收到 OID_SWITCH_PORT_PROPERTY_ADD的 OID 集合要求時,可以透過傳回 STATUS_DATA_NOT_ACCEPTED 來否決新增埠原則。
如需可延伸交換器原則的詳細資訊,請參閱 管理 Hyper-V 可延伸交換器原則。
篩選延伸模組具有下列需求:
篩選延伸模組必須開發為支援可延伸交換器介面的 NDIS 篩選驅動程式。
如需篩選驅動程式的詳細資訊,請參閱 NDIS 篩選驅動程式。
如需了解如何撰寫篩選延伸模組的詳細資訊,請參閱 撰寫 Hyper-V 可擴充互換延伸模組。
附註 Windows 篩選平臺(WFP)提供內建的可擴充交換器篩選擴充元件(Wfplwfs.sys)。 此延伸模組可讓 WFP 篩選或圖說文字驅動程式攔截 Hyper-V 可延伸交換器數據路徑上的封包。 這可讓篩選器或呼叫驅動程式使用 WFP 管理和系統功能來執行封包檢查或修改。 如需 WFP 的概觀,請參閱 Windows 篩選平臺。
篩選延伸模組的 INF 檔案必須將驅動程式安裝為修改型篩選驅動程式。 NDIS 監視篩選驅動程式無法安裝在可延伸交換器驅動程式堆疊中。
如需修改篩選驅動程式的詳細資訊,請參閱 篩選驅動程式的類型。
如需修改篩選驅動程式之 INF 需求的詳細資訊,請參閱 為修改篩選驅動程式設定 INF 檔案。
篩選驅動程式 INF 檔案中的 FilterClass 值必須設定為 ms_switch_filter。 如需詳細資訊,請參閱 Hyper-V 可延伸交換器擴充功能的 INF 需求。
任何數目的篩選延伸模組都可以在驅動程式堆疊中針對可延伸交換器的每個實例系結和啟用。 預設情況下,會按照安裝時間排序多個篩選擴充套件。 例如,多個篩選延伸模組會分層在可延伸交換器驅動程式堆疊中,且最近安裝的延伸模組分層於堆疊中的其他篩選延伸模組之上。
在可延伸交換器實例中系結並啟用它們之後,可重新排序可延伸交換器驅動程式堆疊中的篩選延伸模組分層。 如需詳細資訊,請參閱 重新排序 Hyper-V 可延伸交換器擴充功能。