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