OID_SWITCH_NIC_REQUEST

物件識別碼 (OID) 方法要求OID_SWITCH_NIC_REQUEST是用來封裝 OID 要求,並將 OID 要求轉送至 Hyper-V 可延伸交換器外部網路介面卡。 這可讓封裝的 OID 要求傳遞給驅動程式,以取得系結至外部網路介面卡的基礎實體網路介面卡。

此 OID 要求也可用來封裝發出給其他連線至可延伸交換器埠之網路介面卡的 OID 要求。 在此情況下,封裝的 OID 要求會透過可延伸交換器驅動程式堆疊轉送,以供延伸模組檢查。

NDIS_OID_REQUEST結構的InformationBuffer成員包含NDIS_SWITCH_NIC_OID_REQUEST結構的指標。 這個結構會指定 OID 要求的轉送資訊。 此結構也包含正轉送之 OID 要求之原始 NDIS_OID_REQUEST 結構的指標。

備註

當 OID 要求抵達 Hyper-V 可延伸交換器介面時,它會封裝它們,以便將它們轉送至可延伸交換器控制路徑。 這些 OID 要求包括下列各項:

  • 硬體卸載 OID 要求,包括網際網路通訊協定安全性要求 (IPsec) 、虛擬機器佇列 (VMQ) ,以及單一根目錄 I/O 虛擬化 (SR-IOV) 。 這些 OID 要求是由在 Hyper-V 父分割區管理作業系統中執行的過度通訊協定或篩選驅動程式所發出。

    當這些 OID 要求抵達可延伸交換器介面時,可延伸交換器的通訊協定邊緣會在 NDIS_SWITCH_NIC_OID_REQUEST 結構中封裝 OID 要求。 通訊協定邊緣會以下列方式設定此結構的成員:

    • DestinationPortIdDestinationNicIndex成員會設定為外部網路介面卡的對應值。

    • 如果 OID 要求源自 Hyper-V 子分割區, SourcePortIdSourceNicIndex 成員會設定為分割區所使用的埠和網路介面卡對應值。 否則, SourcePortIdSourceNicIndex 成員會設定為零。

      注意 如果延伸模組轉送或重新導向 OID 要求,則必須保留這些成員的值。

    • OidRequest成員會設定為封裝 OID 要求的NDIS_OID_REQUEST結構的指標。

    然後,通訊協定邊緣會發出OID_SWITCH_NIC_REQUEST要求,將封裝的 OID 要求轉送至外部網路介面卡的可延伸交換器控制路徑。

    基礎轉送延伸模組可以將封裝的硬體卸載 OID 要求重新導向至系結至外部網路介面卡的實體網路介面卡。 例如,如果擴充功能支援系結至外部網路介面卡的可延伸交換器小組的實體網路介面卡,則可以將OID_SWITCH_NIC_REQUEST要求轉送至負載平衡容錯移轉中的實體介面卡, (LBFO) 支援硬體卸載的小組。 如需此程式的詳細資訊,請參閱 管理硬體將 OID 要求卸載至實體網路介面卡

    如需可延伸交換器小組的詳細資訊,請參閱 實體網路介面卡組態的類型

  • 多播 OID 要求,包括 OID_802_3_ADD_MULTICAST_ADDRESSOID_802_3_DELETE_MULTICAST_ADDRESS。 這些 OID 要求是由在管理作業系統或 Hyper-V 子分割區客體作業系統中執行的過度通訊協定和篩選驅動程式所發出。

    當這些 OID 要求抵達可延伸交換器介面時,可延伸交換器的通訊協定邊緣會在 NDIS_SWITCH_NIC_OID_REQUEST 結構中封裝 OID 要求。 通訊協定邊緣也會將 SourcePortIdSourceNicIndex 成員設定為 OID 要求的來源埠和網路介面卡對應值。 然後,通訊協定邊緣會發出OID_SWITCH_NIC_REQUEST要求,將封裝的 OID 要求轉送至可延伸的交換器控制路徑,以供基礎延伸模組檢查。

    注意 在此情況下,通訊協定邊緣會將 DestinationPortIdDestinationNicIndex 成員設定為零。 這會指定封裝的 OID 要求會傳遞至控制項路徑中的延伸模組。

    基礎轉送延伸模組可以檢查這些封裝的 OID 要求,並保留它們指定的多播位址資訊。 例如,如果延伸模組源自轉送至可延伸交換器埠的多播封包,則可能需要此資訊。

    如需詳細資訊,請參閱 從 Hyper-V 子分割轉送 OID 要求

轉送延伸模組也可以發出OID_SWITCH_NIC_REQUEST,以便將封裝的 OID 要求轉送至系結至外部網路介面卡的實體網路介面卡。 這可讓擴充功能產生自己的 OID 要求,或將現有的 OID 要求重新導向至系結至外部網路介面卡的實體網路介面卡。 若要這樣做,延伸模組必須遵循下列步驟:

  1. 擴充功能會呼叫 ReferenceSwitchNic ,以遞增目的地實體網路介面卡索引的參考計數器。 這可確保可延伸交換器介面不會在參考計數器為非零時刪除實體網路介面卡連線。

    注意 可延伸交換器介面可能會在參考計數器為非零時中斷實體網路介面卡連線的連線。 如需詳細資訊,請參閱 Hyper-V 可延伸交換器埠和網路介面卡狀態

  2. 擴充功能會以下列方式初始化 NDIS_SWITCH_NIC_OID_REQUEST 結構,以封裝 OID 要求:

    • DestinationPortId成員必須設定為外部網路介面卡所連接的可延伸交換器埠識別碼。

    • DestinationNicIndex成員必須設定為基礎實體網路介面卡的非零索引值。

    • 如果延伸模組代表 Hyper-V 子分割產生, SourcePortIdSourceNicIndex 成員會設定為分割區所使用的埠和網路介面卡對應值。 否則, SourcePortIdSourceNicIndex 成員會設定為零。

      例如,如果延伸模組管理子分割的硬體卸載資源,則必須設定 SourcePortIdSourceNicIndex 成員,以指定封裝的硬體卸載 OID 要求所針對的分割區。

    • OidRequest成員必須設定為封裝 OID 要求的初始化NDIS_OID_REQUEST結構的指標。

  3. 擴充功能會呼叫 NdisFOidRequest ,將 OID 要求轉送到指定的目的地可延伸交換器埠和網路介面卡。

  4. 當 NDIS 呼叫 FilterOidRequestComplete 函式時,擴充功能會呼叫 DereferenceSwitchNic ,以清除目的地實體網路介面卡索引的參考計數器。

傳回狀態碼

可延伸交換器的基礎迷你埠邊緣會完成OID_SWITCH_NIC_REQUEST的 OID 查詢要求,並傳回下列其中一個狀態碼。

狀態碼 描述

NDIS_STATUS_SUCCESS

OID 要求已順利完成。

NDIS_STATUS_Xxx

要求因其他原因而失敗。

規格需求

版本

NDIS 6.30 和更新版本支援。

標頭

Ntddndis.h (包含 Ndis.h)

另請參閱


NDIS_STATUS_INDICATION

NDIS_SWITCH_NIC_OID_REQUEST