共用方式為


接收 Hyper-V 可延伸交換器組態變更的 OID 要求

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

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

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

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

此圖顯示 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 集合要求。 基礎篩選或轉送延伸模組可以透過完成 OID 要求與STATUS_DATA_NOT_ACCEPTED來建立埠。

當針對可延伸交換器 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 結構,並將要求資訊傳送至新的結構。

    當呼叫 OIDRequestComplete 函式時,擴充功能應該監視 OID 要求的完成結果。 這可讓延伸模組判斷可延伸交換器元件上的作業是否已順利完成,或已由基礎延伸模組進行驗證。

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

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

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

  • 可延伸交換器轉送延伸模組可以在系結至外部網路介面卡的一或多個實體介面卡上,提供 NDIS 硬體卸載技術的支援。 在此設定中,可延伸交換器外部網路介面卡會系結至 NDIS 多工器 (MUX) 中繼驅動程式的虛擬迷你埠邊緣。 MUX 中繼驅動程式會系結至主機上一或多個實體網路的小組。 此設定稱為 可延伸交換器小組。 如需可延伸交換器小組的詳細資訊,請參閱 實體網路介面卡組態的類型

    在此設定中,可延伸交換器延伸模組會公開給小組中的每個網路介面卡。 這可讓可延伸交換器驅動程式堆疊中的轉送延伸模組管理小組中個別網路介面卡的組態和使用。 例如,延伸模組可以藉由將傳出封包轉送至個別配接器,透過小組提供負載平衡容錯移轉 (LBFO) 解決方案的支援。 這類延伸模組稱為 小組提供者。 如需小組提供者的詳細資訊,請參閱 小組提供者延伸模組

    藉由處理 OID_SWITCH_NIC_REQUEST的 OID 要求,小組提供者可以參與介面卡小組的設定,以進行硬體卸載。 例如,擴充功能可以產生自己的 OID 要求OID_SWITCH_NIC_REQUEST,以設定具有硬體卸載參數的實體介面卡。

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

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

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

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