共用方式為


OID_SWITCH_NIC_REQUEST

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

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

InformationBufferNDIS_OID_REQUEST 結構的成員包含 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 要求。 通訊協議邊緣也會將 sourcePortId SourceNicIndex 成員設定為 OID 要求來源埠和網路適配器的對應值。 然後,通訊協定邊緣會發出OID_SWITCH_NIC_REQUEST要求,將封裝的 OID 要求轉送至可延伸的交換器控制路徑,以供基礎延伸模組檢查。

    Note 在此情況下,通訊協定邊緣會將 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 子分割,則 sourcePortId SourceNicIndex 成員會設定為分割區所使用的埠和網路適配器的對應值。 否則,SourcePortIdSourceNicIndex 成員會設定為零。

      例如,如果延伸模組正在管理子磁碟分區的硬體卸除資源,則必須設定 SourcePortId,並 SourceNicIndex 成員,以指定封裝的硬體卸除 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