Поделиться через


функция обратного вызова 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 структур.

Примечание Если параметр NetBufferList содержит указатель на связанный список нескольких NET_BUFFER_LIST структур, порты назначения возвращаются только из первой структуры 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_FORWARDING_DESTINATION_ARRAY гарантированно будет действительной, а расширение сохраняет право собственности на структуру NET_BUFFER_LIST пакета.
 

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.30 и более поздних версиях.
Целевая платформа Персональный компьютер
Верхняя часть ndis.h (включая Ndis.h)
IRQL <= DISPATCH_LEVEL

См. также раздел

AllocateNetBufferListForwardingContext

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers