NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS回呼函式 (ndis.h)
Hyper-V 可延伸交換器擴充功能會呼叫 UpdateNetBufferListDestinations 函式,以認可延伸模組對包含多個可延伸交換器目的地埠之封包所做的修改。 函式會將這些修改儲存至封包 NET_BUFFER_LIST 結構的頻外 (OOB) 可延伸交換器轉送內容。
語法
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 結構的指標。
[in] NumberOfNewDestinations
UINT32 值,指定新增至封包的新目的地埠數目。
[in] 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 結構。
延伸模組取得 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構之後,延伸模組可以執行下列動作:
-
在陣列中新增其他 NDIS_SWITCH_PORT_DESTINATION 專案。
如需詳細資訊,請參閱 將可延伸交換器目的地埠數據新增至封包。
-
修改陣列的現有 NDIS_SWITCH_PORT_DESTINATION 專案,以排除封包無法轉送至指定的埠。
如需詳細資訊,請參閱 排除封包傳遞至可延伸交換器目的地埠。
此外,在認可目的地埠的變更之後,就無法移除目的地埠,而且只能變更目的地埠 NDIS_SWITCH_PORT_DESTINATION 結構 成員 IsExcluded。 如需詳細資訊,請參閱 排除封包傳遞至可延伸交換器目的地埠。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | NDIS 6.30 和更新版本支援。 |
目標平臺 | 桌面 |
標頭 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
另請參閱
AllocateNetBufferListForwardingContext