функция обратного вызова NDIS_SWITCH_GET_NET_BUFFER_LIST_DESTINATIONS (ndis.h)
Функция GetNetBufferListDestinations возвращает порты назначения расширяемого коммутатора Hyper-V пакета, указанного в структуре NET_BUFFER_LIST .
Синтаксис
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_STATUS_Xxx, определенный в Ndis.h.
Комментарии
Расширение расширяемого коммутатора вызывает функцию 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