функция обратного вызова NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS (ndis.h)
Расширение Hyper-V расширяемого коммутатора вызывает функцию UpdateNetBufferListDestinations для фиксации изменений, внесенных расширением в пакет, который содержит несколько расширяемых портов назначения коммутатора. Функция сохраняет эти изменения в расширяемом переадресации переадресации контекста 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 для одного пакета.
[in] NumberOfNewDestinations
Значение UINT32, указывающее количество новых портов назначения, добавленных в пакет.
[in] Destinations
Указатель на структуру NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY. Эта структура задает расширяемые порты назначения коммутатора пакета.
Возвращаемое значение
Если вызов выполнен успешно, функция возвращает NDIS_STATUS_SUCCESS. В противном случае возвращается код ошибки NDIS_STATUS_Xxx, определенный в Ndis.h.
Замечания
Расширение расширяемого коммутатора вызывает функцию GetNetBufferListDestinations для получения массива портов назначения расширяемого коммутатора для пакета. Если функция возвращается успешно, массив получается с помощью параметра Назначения, который содержит указатель на структуру NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY. Каждый элемент в этом массиве форматируется как структура NDIS_SWITCH_PORT_DESTINATION, указывающая порт назначения для пакета.
После получения NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY структуры расширение может выполнить следующее:
-
Добавьте в массив дополнительные NDIS_SWITCH_PORT_DESTINATION элементы.
Дополнительные сведения см. в разделе Добавление данных порта назначения расширяемого коммутатора в пакет.
-
Измените существующие NDIS_SWITCH_PORT_DESTINATION элементы массива, чтобы исключить перенаправление пакета на указанный порт.
Дополнительные сведения см. в исключении доставки пакетов в порты назначения расширяемого коммутатора.
Кроме того, после фиксации изменений для конечных портов нельзя удалить конечные порты, а можно изменить только IsExcluded член NDIS_SWITCH_PORT_DESTINATION конечного порта. Дополнительные сведения см. в исключении доставки пакетов в порты назначения расширяемого коммутатора.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Поддерживается в NDIS 6.30 и более поздних версиях. |
целевая платформа | Настольный |
заголовка | ndis.h (include Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
См. также
AllocateNetBufferListForwardingContext