OID_SWITCH_NIC_CREATE

Hyper-V 可延伸交換器的通訊協定邊緣會發出物件識別碼 (OID) 設定OID_SWITCH_NIC_CREATE要求,以通知基礎可延伸交換器延伸模組在可延伸交換器埠與外部或虛擬網路介面卡之間建立新的連線。 完全建立連線之後,可延伸交換器的通訊協定邊緣會發出 OID_SWITCH_NIC_CONNECT的 OID 集合要求。

NDIS_OID_REQUEST結構的InformationBuffer成員包含NDIS_SWITCH_NIC_PARAMETERS結構的指標。

備註

NDIS_SWITCH_NIC_PARAMETERS結構的PortId成員會指定要建立通知的可延伸交換器埠。 可延伸交換器延伸模組可以發出 OID_SWITCH_PORT_ARRAY的 OID 查詢要求,取得這個和其他可延伸交換器上的參數資訊。

NDIS_SWITCH_NIC_PARAMETERS結構的Index成員會指定要建立通知之網路介面卡的索引。 具有指定 索引 值的網路介面卡會連線到 PortId 成員所指定的可延伸交換器埠。 如需這些索引值的詳細資訊,請參閱 網路介面卡索引值

當它收到OID_SWITCH_NIC_CREATE的 OID 集合要求時,延伸模組必須遵循下列指導方針:

  • 延伸模組不得修改與 OID 要求相關聯的 NDIS_SWITCH_NIC_PARAMETERS 結構。

  • OID_SWITCH_NIC_CREATE要求只會通知延伸模組正在啟動新的可延伸交換器連線,而且封包流量很快就會開始透過指定的埠發生。 不過,除非可延伸交換器的通訊協定邊緣發出 OID 集合要求 ,否則延伸模組無法使用埠OID_SWITCH_NIC_CONNECT。 在發出 OID 之前,延伸模組不得執行下列動作:

    • 在發出 OID_SWITCH_NIC_CREATE OID 要求的可延伸交換器埠上,產生網路介面卡連線的任何封包流量。

    • OID_SWITCH_NIC_REQUEST 的 OID 要求轉送或產生至發出OID_SWITCH_NIC_CREATE OID 要求的基礎網路介面卡。

    • 從發出 OID_SWITCH_NIC_CREATE OID 要求的基礎網路介面卡轉寄或源自NDIS_STATUS_SWITCH_NIC_STATUS的 NDIS 狀態指示。

    • 呼叫 ReferenceSwitchNic ,以針對可延伸交換器埠上的指定網路介面卡連線遞增可延伸交換器參考計數器。

    注意 延伸模組可能會攔截OID_SWITCH_NIC_CREATE和 OID_SWITCH_NIC_CONNECT之 OID 要求之間指定埠的傳送或接收封包。 在此情況下,延伸模組應該轉送傳送或接收封包要求,而不是取消它們。

  • 此延伸模組可以傳回 OID 要求的NDIS_STATUS_DATA_NOT_ACCEPTED,以取得建立通知。 例如,如果延伸模組無法在指定的埠上滿足其已設定的原則,則延伸模組應該會保留建立通知。

    如果延伸模組傳回其他NDIS_STATUS_Xxx 狀態碼,則建立通知也會經過驗證。 不過,傳回暫時案例的狀態碼,例如傳回NDIS_STATUS_RESOURCES,可能會導致建立通知重試。

    如果擴充功能未通過 OID 要求,它應該會在要求完成時監視狀態。 延伸模組應該這樣做,以判斷 OID 要求是由可延伸交換器控制項路徑中的基礎延伸模組或可延伸交換器介面所驗證。

    注意如果NDIS_SWITCH_NIC_PARAMETERS結構的Index成員指定零的網路介面卡索引值,則延伸模組只能有 OID 要求。

  • 如果擴充功能沒有建立通知,則必須呼叫 NdisFOidRequest ,將此 OID 要求轉送到可延伸交換器驅動程式堆疊中的基礎延伸模組。

    注意 此延伸模組應監視此 OID 要求的完成狀態。 此擴充功能會偵測可延伸交換器驅動程式堆疊中的基礎延伸模組是否已通過建立通知。

  • 如果擴充功能呼叫 NdisFOidRequest 來轉送此 OID 要求,擴充功能將不會立即接收任何可延伸交換器埠或從中傳送的封包流量。 此外,擴充功能無法立即插入可延伸交換器埠的傳送或接收流量。

  • 擴充功能只能在可延伸交換器的通訊協定邊緣發出 OID 集合要求 OID_SWITCH_NIC_CONNECT之後,將封包流量轉送至可延伸交換器埠。

    注意 在某些情況下,封包流量可能會由可延伸的交換器轉送至埠,然後再發出 OID_SWITCH_NIC_CONNECT 的 OID 集要求。

  • 可延伸交換器外部網路介面卡可以系結至一或多個基礎實體介面卡。 對於系結至外部網路介面卡的每個實體網路介面卡,可延伸交換器的通訊協定邊緣會發出個別的 OID 集合要求OID_SWITCH_NIC_CREATE。 每個 OID 集合要求都會指定不同的網路介面卡連線索引值。 如需這些索引值的詳細資訊,請參閱 網路介面卡索引值

    延伸模組必須維護每個基礎實體介面卡的線上狀態。 如需實體網路介面卡可以系結至外部網路介面卡之不同組態的詳細資訊,請參閱 實體網路介面卡組態的類型

如需可延伸交換器埠和網路介面卡線上狀態的詳細資訊,請參閱 Hyper-V 可延伸交換器埠和網路介面卡狀態

注意 擴充功能不得發出自己的 OID 集合要求OID_SWITCH_NIC_CREATE。

傳回狀態碼

如果延伸模組完成OID_SWITCH_NIC_CREATE的 OID 集合要求,它會傳回下列其中一個狀態碼。

狀態碼 描述

NDIS_STATUS_DATA_NOT_ACCEPTED

延伸模組已確認建立通知。

NDIS_STATUS_RESOURCES

延伸模組因資源狀況低而已取消建立通知。

NDIS_STATUS_Xxx

延伸模組因其他原因而已取消建立通知。

注意 如果延伸模組完成 OID 集合要求,它不得傳回NDIS_STATUS_SUCCESS。

如果延伸模組未完成OID_SWITCH_NIC_CREATE的 OID 集合要求,則要求會由可延伸交換器的基礎迷你埠邊緣完成。 基礎迷你埠邊緣會傳回此 OID 集合要求的下列狀態碼:

狀態碼 描述

NDIS_STATUS_SUCCESS

OID 要求已成功完成。

規格需求

版本

NDIS 6.30 和更新版本支援。

標頭

Ntddndis.h (包括 Ndis.h)

另請參閱


NDIS_OID_REQUEST

NDIS_SWITCH_NIC_PARAMETERS

NdisFOidRequest

OID_SWITCH_NIC_CONNECT

OID_SWITCH_PORT_ARRAY

ReferenceSwitchPort