共用方式為


接收有關 Hyper-V 可延伸交換器設定變更的 OID 要求

可延伸交換器介面會發出可延伸交換器物件標識碼 (OID) 集合要求,通知基礎延伸模組變更可延伸交換器元件元件組態和原則參數。 這些要求是由可延伸交換器的通訊協定邊緣所發出,以通知基礎延伸模組變更可延伸交換器元件元件組態和原則參數。 這些 OID 要求會透過可延伸交換器驅動程式堆疊移至可延伸交換器的基礎迷你埠邊緣。

下圖顯示 NDIS 6.40 (Windows Server 2012 R2) 和更新版本的 OID 要求的可延伸交換器控制路徑。

此圖顯示 NDIS 6.40 中 OID 要求的可延伸交換器控制路徑。

下圖顯示 NDIS 6.30 OID 要求的可延伸交換器控制路徑(Windows Server 2012)。

此圖顯示 NDIS 6.30 中 OID 要求的可延伸交換器控制路徑。

注意 在可延伸交換器介面中,NDIS 篩選驅動程式稱為 可延伸交換器擴充功能,而驅動程式堆疊稱為 可延伸交換器驅動程式堆疊

可延伸交換器的通訊協定邊緣會針對下列類型的通知發出 OID 集合要求:

  • 變更可延伸交換器上的埠組態。

    例如,通訊協定驅動程式會發出 OID_SWITCH_PORT_CREATE ,以通知基礎延伸模組在可延伸交換器上建立埠。 同樣地,通訊協定驅動程式會發出 OID_SWITCH_PORT_DELETE ,以通知擴充功能刪除埠。

    如需這類 OID 通知的詳細資訊,請參閱 Hyper-V 可延伸交換器埠

  • 更改網路適配器連接至可擴充交換器連接埠的設定。

    例如,通訊協定驅動程式會發出 OID_SWITCH_NIC_CONNECT ,以通知基礎延伸模組將網路適配器連線至可延伸交換器上的埠。 同樣地,通訊協定驅動程式會發出 OID_SWITCH_NIC_DISCONNECT ,以通知擴充功能網路適配器已與埠中斷連線。

    如需這類 OID 通知的詳細資訊,請參閱 Hyper-V 可延伸交換器網路適配器

  • 可延展交換器埠或交換器政策的變更。

    例如,通訊協定驅動程式會發出 OID_SWITCH_PROPERTY_ADD ,以通知基礎延伸模組新增可延伸交換器屬性。 同樣地,通訊協定驅動程式會發出 OID_SWITCH_PORT_PROPERTY_DELETE ,以通知擴充功能刪除埠屬性。

    如需這種類型的 OID 通知的詳細資訊,請參閱 管理 Hyper-V 可延伸交換器原則

    注意 擴充功能不會收到由可延伸交換器基礎迷你埠邊緣所管理之預設埠或交換器原則變更的通知。

  • 儲存或還原運行時間埠數據。

    例如,通訊協定驅動程式會發出 OID_SWITCH_NIC_SAVE 通知基礎延伸模組,以在可延伸交換器上儲存指定埠的運行時間數據。 當 Hyper-V 狀態儲存或移轉至另一部主機時,會發出這些 OID。 同樣地,通訊協定驅動程式會發出 OID_SWITCH_NIC_RESTORE ,以通知延伸模組執行階段埠資料正在可延伸交換器上還原。

    如需這類 OID 通知的詳細資訊,請參閱 管理 Hyper-V 可延伸交換器 Run-Time 數據

可延伸交換器擴充功能迷你埠驅動程序負責完成這些 OID 要求。 不過,透過一些可延伸的交換器 OID 要求,基礎延伸模組可能會使 OID 要求失敗,以否決通知。 例如,當可延伸交換器通訊協定驅動程式通知篩選驅動程式將在可延伸交換器上建立的新埠時,它會發出 OID_SWITCH_PORT_CREATE的 OID 集合要求。 基礎過濾或轉發擴充功能可以透過使用 STATUS_DATA_NOT_ACCEPTED 完成 OID 要求,以否決埠創建。

當針對可延伸交換器 OID 要求呼叫 FilterOidRequest 函式時,可延伸交換器延伸模組必須遵循下列指導方針:

  • 延伸模組不得修改 OidRequest 參數所指向的任何數據。

  • 針對某些可延伸交換器 OID 要求,擴充元件可透過 STATUS_DATA_NOT_ACCEPTED 完成 OID 要求。 這會禁止在發出了 OID 要求的可延伸交換器元件上的作業。

    例如,延伸模組可以以 STATUS_DATA_NOT_ACCEPTED 來完成 OID_SWITCH_NIC_CREATE 要求。 如果驅動程式無法在建立網路連線的指定埠上滿足其設定的原則,則可能需要執行此動作。

    擴充功能可以透過這種方式完成以下 OID 的請求:

  • 如果擴充功能未完成 OID 要求,則必須呼叫 NdisFOidRequest ,將要求轉送至可延伸交換器驅動程式堆疊。

    注意 在驅動程式呼叫 NdisFOidRequest 之前,驅動程式必須呼叫 NdisAllocateCloneOidRequest 來配置 NDIS_OID_REQUEST 結構,並將要求資訊傳送至新的結構。

    呼叫 FilterOidRequestComplete 函式時,延伸模組應該監視該 OID 要求的完成結果。 這可讓延伸模塊判斷可延伸交換器元件上的作業是否已順利完成,還是已由基礎延伸模塊否決。

    如需如何篩選和轉送 OID 要求的詳細資訊,請參閱 NDIS 篩選驅動程式中的篩選 OID 要求

  • NDIS 和上層協議及篩選器驅動程式可以對基礎實體網路配接卡的硬體卸載技術發出 OID 要求。 這包括卸除技術的 OID 要求,例如虛擬機佇列 (VMQ)、因特網通訊協定安全性 (IPsec),以及單一根 I/O 虛擬化 (SR-IOV)。

    當這些 OID 要求到達可延伸交換器介面時,它會將 OID 要求封裝在 NDIS_SWITCH_NIC_OID_REQUEST內。 然後,可延伸交換器的通訊協定邊緣會發出包含此結構的 OID_SWITCH_NIC_REQUEST OID 要求。

  • 可擴展的交換器轉發擴充功能模組,可以為綁定到外部網路適配器的一個或多個實體網路適配器上的 NDIS 硬體卸載技術提供支援。 在此設定中,擴展型交換器的外部網路介面卡會綁定至 NDIS 多路複用器(MUX)中繼驅動程式的虛擬小端口邊緣。 MUX 中繼驅動程式系結至主機上一或多個實體網路的小組。 這個設定稱為 可延伸交換器小組。 如需可延伸交換器小組的詳細資訊,請參閱 實體網路適配器組態的類型。

    在此設定中,可延伸交換器擴充功能會公開給小組中的每個網路適配器。 這可讓可延伸交換器驅動程式堆疊中的轉送延伸模組管理小組中個別網路適配器的設定和使用。 例如,擴充套件可以將傳出封包轉送至個別配接器,從而在小組中提供對負載平衡故障轉移(LBFO)解決方案的支援。 這類延伸模組稱為 團隊合作提供者。 如需有關團隊提供者的詳細資訊,請參閱 Teaming Provider Extensions

    藉由處理 OID_SWITCH_NIC_REQUEST的 OID 要求,小組提供者可以參與硬體卸除的配接器小組設定。 例如,擴充功能可以產生自己的 OID 要求 OID_SWITCH_NIC_REQUEST,以設定具有硬體卸除參數的實體配接器。

    如需如何處理 OID_SWITCH_NIC_REQUEST OID 要求的詳細資訊,請參閱 將 OID 要求轉送至實體網路適配器

    注意 擴充篩選器驅動程式可以產生 OID_SWITCH_NIC_REQUEST 的 OID 要求,以對綁定至可延伸交換器外部網路介面卡的任何實體網路介面卡發出私人 OID。

請注意,使用 NdisFRestartFilter 的 Stack 重新啟動要求不會在可延伸交換器 OID 要求擱置時完成。 基於這個理由,等待堆疊重新啟動的延伸模組必須完成任何進行中的 OID 要求。

如需可延伸交換器 OID 要求之控制路徑的詳細資訊,請參閱 Hyper-V OID 要求的可延伸交換器控制路徑