NDIS_SWITCH_GET_NET_BUFFER_LIST_DESTINATIONS回呼函式 (ndis.h)
GetNetBufferListDestinations 函式會傳回NET_BUFFER_LIST結構所指定封包的 Hyper-V 可延伸交換器目的地埠。
語法
NDIS_SWITCH_GET_NET_BUFFER_LIST_DESTINATIONS NdisSwitchGetNetBufferListDestinations;
void NdisSwitchGetNetBufferListDestinations(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST NetBufferList,
[out] PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY *Destinations
)
{...}
參數
[in] NdisSwitchContext
NDIS_SWITCH_CONTEXT值,其中包含附加 Hyper-V 可延伸交換器擴充功能之可延伸交換器模組的句柄。 當擴充功能呼叫 NdisFGetOptionalSwitchHandlers 時,此句柄會透過 NdisSwitchContext 參數傳回。
[in, out] NetBufferList
NET_BUFFER_LIST 結構連結清單的指標。
[out] Destinations
NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構的指標。 此結構會指定封包的可延伸交換器目的地埠。
傳回值
如果呼叫成功,函式會傳回NDIS_STATUS_SUCCESS。 否則,它會傳回 Ndis.h 中定義的NDIS_STATUS_Xxx 錯誤碼。
備註
可延伸交換器擴充功能會呼叫 GetNetBufferListDestinations 函式,以取得封包的可延伸交換器目的地埠陣列。 如果函式成功傳回,則會透過 Destinations 參數取得數位,其中包含 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構的指標。 此陣列中的每個元素都會格式化為 NDIS_SWITCH_PORT_DESTINATION 結構,以指定封包的目的地埠。
如果擴充功能配置封包,擴充功能必須先呼叫 AllocateNetBufferListForwardingContext 函式, 再呼叫 GetNetBufferListDestinations。 AllocateNetBufferListForwardingContext 函式會配置封包的可延伸交換器轉送內容。 此內容包含頻外 (OOB) 包含 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構的可延伸交換器數據。
如需可延伸交換器轉送內容的詳細資訊,請參閱 Hyper-V 可延伸交換器轉送內容。
擴充功能取得陣列之後,就可以執行下列動作:
-
為陣列中的其他 NDIS_SWITCH_PORT_DESTINATION 元素配置空間。
如需詳細資訊,請參閱 將可延伸交換器目的地埠數據新增至封包。
-
修改陣列 NDIS_SWITCH_PORT_DESTINATION專案中的 目的地埠資訊。 例如,延伸模組可以指定要轉送封包的埠,也可以排除封包無法轉送至指定的埠。
如需詳細資訊,請參閱 修改封包的可延伸交換器來源埠數據。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.30 和更新版本支援。 |
目標平台 | 桌面 |
標頭 | ndis.h (包含 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
另請參閱
AllocateNetBufferListForwardingContext