共用方式為


OID_SWITCH_NIC_CREATE

Hyper-V 可延伸交換器的通訊協定邊緣發出OID_SWITCH_NIC_CREATE的對象標識碼 (OID) 集合要求,以通知基礎可延伸交換器擴充功能,在可延伸交換器埠與外部或虛擬網路適配器之間建立新的連線。 完全建立連線之後,可延伸交換器的通訊協定邊緣會發出 OID_SWITCH_NIC_CONNECT的 OID 集合要求。

InformationBufferNDIS_OID_REQUEST 結構的成員包含 NDIS_SWITCH_NIC_PARAMETERS 結構的指標。

言論

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

NDIS_SWITCH_NIC_PARAMETERS 結構的 Index 成員會指定建立通知的網路適配器索引。 具有指定 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 狀態指示 NDIS_STATUS_SWITCH_NIC_STATUS

    • 呼叫 ReferenceSwitchNic,以在可延伸交換器埠上為指定的網路適配器連線遞增可延伸交換器參考計數器。

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

  • 延伸模組可以傳回 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 設定 OID_SWITCH_NIC_CONNECT 的要求。

  • 可延伸交換器外部網路適配器可以系結至一或多個基礎實體適配卡。 對於系結至外部網路適配器的每個實體網路適配器,可延伸交換器的通訊協定邊緣會發出個別的 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