共用方式為


NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS回呼函式 (ndis.h)

Hyper-V 可延伸交換器擴充功能會呼叫 UpdateNetBufferListDestinations 函式,以認可延伸模組對包含多個可延伸交換器目的地埠之封包所做的修改。 函式會將這些修改儲存至頻外 (OOB) 可延伸交換器轉送封包 NET_BUFFER_LIST 結構的內容。

語法

NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS NdisSwitchUpdateNetBufferListDestinations;

NDIS_STATUS NdisSwitchUpdateNetBufferListDestinations(
  [in]      NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in, out] PNET_BUFFER_LIST NetBufferList,
  [in]      UINT32 NumberOfNewDestinations,
  [in]      PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY Destinations
)
{...}

參數

[in] NdisSwitchContext

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

[in, out] NetBufferList

單一封包 之NET_BUFFER_LIST 結構的指標。

注意 這個結構必須包含可延伸的交換器轉送內容。 如果擴充功能已建立或複製封包,則它之前必須呼叫 AllocateNetBufferListForwardingContext 函式來配置此結構。
 

[in] NumberOfNewDestinations

UINT32 值,指定新增至封包的新目的地埠數目。

[in] Destinations

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構的指標。 這個結構會指定封包的可延伸交換器目的地埠。

注意 擴充功能透過先前對 GetNetBufferListDestinations 函 式的呼叫收到這個結構。
 

傳回值

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

備註

可延伸交換器擴充功能會呼叫 GetNetBufferListDestinations 函式,以取得封包的可延伸交換器目的地埠陣列。 如果函式成功傳回,則會透過 Destinations 參數取得數位,其中包含 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構的指標。 此陣列中的每個元素都會格式化為 NDIS_SWITCH_PORT_DESTINATION 結構,指定封包的目的地埠。

延伸模組取得 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構之後,延伸模組可以執行下列動作:

如果延伸模組在 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構中新增或修改目的地埠,擴充功能必須呼叫 UpdateNetBufferListDestinations 函式,以將這些變更認可至封包 NET_BUFFER_LIST 結構。
注意 只有轉送延伸模組可以呼叫 UpdateNetBufferListDestinations 來認可已針對具有多個目的地埠的封包新增或變更的目的地埠。 如需此類型延伸模組的詳細資訊,請參閱 轉送延伸模組
 
如果 對 UpdateNetBufferListDestinations 的呼叫傳回NDIS_STATUS_SUCCESS,可延伸交換器介面可確保在目的地埠中參考的可延伸交換器埠和網路適配器連線將不會刪除,直到封包的傳送或接收作業完成為止。

此外,認可目的地埠的變更之後,就無法移除目的地埠,而且只能變更目的地埠NDIS_SWITCH_PORT_DESTINATION結構的IsExcluded成員。 如需詳細資訊,請參閱 排除封包傳遞至可延伸交換器目的地埠

注意 基於效能考慮,擴充功能不應該呼叫 UpdateNetBufferListDestinations 函式,將變更認可至只有一個目的地埠的封包。 相反地,擴充功能會呼叫 AddNetBufferListDestination ,以認可封包目的地埠的變更。
 
如需可延伸交換器轉送內容的詳細資訊,請參閱 Hyper-V 可延伸交換器轉送內容

規格需求

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

另請參閱

AllocateNetBufferListForwardingContext

GetNetBufferListDestinations

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

NdisFOidRequest

OID_SWITCH_NIC_DELETE