共用方式為


NDIS_SWITCH_REFERENCE_SWITCH_NIC回呼函式 (ndis.h)

ReferenceSwitchNic 函式會為連線至可延伸交換器埠的網路適配器遞增 Hyper-V 可延伸交換器參考計數器。

語法

NDIS_SWITCH_REFERENCE_SWITCH_NIC NdisSwitchReferenceSwitchNic;

NDIS_STATUS NdisSwitchReferenceSwitchNic(
  [in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in] NDIS_SWITCH_PORT_ID SwitchPortId,
  [in] NDIS_SWITCH_NIC_INDEX SwitchNicIndex
)
{...}

參數

[in] NdisSwitchContext

NDIS_SWITCH_CONTEXT值,其中包含附加 Hyper-V 可延伸交換器擴充功能的可延伸交換器模組句柄。 當擴充功能呼叫 NdisFGetOptionalSwitchHandlers時,此句柄會透過 NdisSwitchContext 參數傳回。

[in] SwitchPortId

NDIS_SWITCH_PORT_ID值,其中包含虛擬網路適配器所連線之可延伸交換器埠的唯一標識符。

[in] SwitchNicIndex

NDIS_SWITCH_NIC_INDEX值,指定要遞增可延伸交換器參考計數器之虛擬網路適配器的索引。

如需NDIS_SWITCH_NIC_INDEX值的詳細資訊,請參閱 網路配接器索引值

注意 此參數必須指定處於連線狀態之網路適配器的索引值。 無法指定處於已建立或中斷連線狀態之網路適配器的索引值。 如需網路連線狀態的詳細資訊,請參閱 Hyper-V 可延伸交換器埠和網路適配器狀態
 

傳回值

如果呼叫成功,函式會傳回NDIS_STATUS_SUCCESS。 否則,它會傳回在 Ndis.h 中定義的NDIS_STATUS_Xxx 錯誤碼。

言論

可延伸交換器擴充功能會呼叫 ReferenceSwitchNic,以遞增連接到可延伸交換器埠之網路適配器的參考計數器。 雖然參考計數器具有非零值,但可延伸交換器的通訊協定邊緣不會發出 OID_SWITCH_NIC_DELETE 的對象標識碼集要求,以刪除與配接器的連線。

在擴充功能呼叫 ReferenceSwitchNic之後,它必須呼叫 DereferenceSwitchNic,以遞減可延伸的交換器參考計數器。

擴充功能應該先呼叫 ReferenceSwitchNic,再執行下列作業:

注意 延伸模組在透過可延伸交換器數據路徑轉送封包時,不得呼叫 referenceSwitchNic。 可延伸交換器介面會針對透過數據路徑轉送至埠和網路適配器連線的封包管理自己的參考計數器。
 
擴充功能會在網路適配器連線達到 狀態建立 網路適配器連線之後,呼叫 ReferenceSwitchNic。 擴充功能在連線達到 網路適配器已中斷聯機網路適配器已刪除 狀態之後,不得呼叫 ReferenceSwitchNic。 如需這些狀態的詳細資訊,請參閱 Hyper-V 可延伸交換器埠和網路配接器狀態
注意 當擴充功能呼叫 ReferenceSwitchNic時,它不需要與處理 OID 要求的程式代碼同步處理呼叫。 因此,擴充功能可能會呼叫 ReferenceSwitchNic,而可延伸交換器的通訊協定邊緣會發出 OID_SWITCH_NIC_DISCONNECT的 OID 要求。 不過,如果呼叫 ReferenceSwitchNic 完成NDIS_STATUS_SUCCESS,擴充功能仍然可以在處理OID_SWITCH_NIC_DISCONNECT OID 要求之後轉送 OID_SWITCH_NIC_REQUEST OID 要求或 NDIS_STATUS_SWITCH_NIC_STATUS 狀態指示。
 

要求

要求 價值
最低支援的用戶端 NDIS 6.30 和更新版本支援。
目標平臺 桌面
標頭 ndis.h (包括 Ndis.h)
IRQL <= DISPATCH_LEVEL

另請參閱

DereferenceSwitchNic

NDIS_STATUS_SWITCH_NIC_STATUS

NdisFGetOptionalSwitchHandlers

OID_SWITCH_NIC_DELETE

OID_SWITCH_NIC_DISCONNECT

OID_SWITCH_NIC_REQUEST