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


структура NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY (ndis.h)

Структура NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY указывает массив портов назначения расширяемого коммутатора Hyper-V для пакета. Каждый элемент в массиве форматируется как NDIS_SWITCH_PORT_DESTINATION структура.

Эти сведения содержатся в данных о внеполосном подключении (OOB) структуры NET_BUFFER_LIST пакета.

Синтаксис

typedef struct _NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY {
  NDIS_OBJECT_HEADER Header;
  UINT32             ElementSize;
  UINT32             NumElements;
  UINT32             NumDestinations;
  PVOID              FirstElement;
} NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY, *PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY;

Члены

Header

Тип, редакция и размер структуры NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY . Этот элемент имеет формат структуры NDIS_OBJECT_HEADER .

Элемент Typeзаголовка должен иметь значение NDIS_OBJECT_TYPE_DEFAULT. Чтобы указать версию структуры NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY , член редакциизаголовка должен иметь следующее значение:

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1

Исходная версия для NDIS 6.30 и более поздних версий.

Задайте для элемента Размер значение NDIS_SIZEOF_NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1.

ElementSize

Значение ULONG, указывающее размер (в байтах) каждого элемента NDIS_SWITCH_PORT_DESTINATION , следующего за структурой NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY .

NumElements

Значение ULONG, указывающее общее количество NDIS_SWITCH_PORT_DESTINATION элементов в структуре NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY .

Значение элемента NumElements указывает количество используемых в настоящее время элементов NDIS_SWITCH_PORT_DESTINATION (как указано в элементе NumDestinations ), а также количество элементов, доступных для новых портов назначения. Число неиспользуемых элементов NDIS_SWITCH_PORT_DESTINATION в структуре NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY вычисляется с помощью (NumElements - NumDestinations).

NumDestinations

Значение ULONG, указывающее количество элементов NDIS_SWITCH_PORT_DESTINATION в структуре NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY , определяющих назначения портов.

Примечание Если numElements равно нулю, этот элемент игнорируется.
 

FirstElement

Указатель на первый элемент NDIS_SWITCH_PORT_DESTINATION в буфере, содержащий структуру NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY и все ее элементы.

Комментарии

Расширение расширяемого коммутатора может выполнять следующие действия с портами назначения в структуре NET_BUFFER_LIST пакета:

  • Запрос текущих портов назначения на расширяемом коммутаторе, в который будет перенаправлен пакет.

    Расширение расширяемого коммутатора вызывает функцию GetNetBufferListDestinations для получения массива назначений портов для пакета. GetNetBufferListDestinations возвращает указатель на структуру NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY в параметре Destinations .

    Дополнительные сведения см. в статье Запрос данных порта назначения расширяемого коммутатора пакета.

  • Добавьте или измените порты назначения для пакета.

    После того как он запросит текущие порты назначения для пакета, расширение расширяемого коммутатора может выполнить следующие действия:

    • Расширение переадресации может добавлять новые порты назначения в структуру NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY .
    • Расширение фильтрации или пересылки может изменять данные в структуре NDIS_SWITCH_PORT_DESTINATION для порта назначения.
      Примечание Расширение фильтрации может изменять только элемент IsExcluded этой структуры. Расширение пересылки также может изменять элементы PreserveVLAN и PreservePriority .
       
    Если расширение добавляет или изменяет назначения портов, оно должно вызвать UpdateNetBufferListDestinations , чтобы зафиксировать изменения портов назначения в данных OOB пакета в структуре NET_BUFFER_LIST .

    Дополнительные сведения см. в статье Управление данными порта назначения расширяемого коммутатора Hyper-V.

Расширения расширяемого коммутатора могут использовать макрос NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX для доступа к NDIS_SWITCH_PORT_DESTINATION элементам в массиве NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY .

Требования

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

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

Добавление данных порта назначения расширяемого коммутатора в пакет

Исключение доставки пакетов в порты назначения расширяемого коммутатора

Переадресация расширений

GetNetBufferListDestinations

Гибридная пересылка

NDIS_OBJECT_HEADER

NDIS_SWITCH_PORT_DESTINATION

NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX

NET_BUFFER_LIST

Обзор расширяемого коммутатора Hyper-V

UpdateNetBufferListDestinations