Compartilhar via


NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY estrutura (ndis.h)

A estrutura de NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY especifica uma matriz de portas de destino de comutador extensível Hyper-V para um pacote. Cada elemento na matriz é formatado como uma estrutura NDIS_SWITCH_PORT_DESTINATION.

Essas informações estão contidas nos dados OOB (fora de banda) da estrutura de NET_BUFFER_LIST do pacote.

Sintaxe

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;

Membros

Header

O tipo, a revisão e o tamanho da estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY. Esse membro é formatado como uma estrutura NDIS_OBJECT_HEADER.

O membro tipo do de cabeçalho deve ser definido como NDIS_OBJECT_TYPE_DEFAULT. Para especificar a versão da estrutura de NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY, o membro de Revisão do de Cabeçalho deve ser definido como o seguinte valor:

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1

Versão original do NDIS 6.30 e posterior.

Defina o membro tamanho como NDIS_SIZEOF_NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1.

ElementSize

Um valor ULONG que especifica o tamanho, em bytes, de cada elemento NDIS_SWITCH_PORT_DESTINATION que segue a estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY.

NumElements

Um valor ULONG que especifica o número total de elementos NDIS_SWITCH_PORT_DESTINATION na estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY.

O valor do membro NumElements especifica o número de elementos NDIS_SWITCH_PORT_DESTINATION usados no momento (conforme especificado pelo membro numDestinations) mais o número de elementos disponíveis para novas portas de destino. O número de elementos NDIS_SWITCH_PORT_DESTINATION não utilizados na estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY é calculado por (NumElements - NumDestinations).

NumDestinations

Um valor ULONG que especifica o número de elementos NDIS_SWITCH_PORT_DESTINATION na estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY que especifica destinos de porta.

Observação Se numElements estiver definido como zero, esse membro será ignorado.
 

FirstElement

Um ponteiro para o primeiro elemento NDIS_SWITCH_PORT_DESTINATION no buffer que contém a estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY e todos os seus elementos.

Observações

A extensão de comutador extensível pode fazer o seguinte com as portas de destino na estrutura de NET_BUFFER_LIST de um pacote:

  • Consulte as portas de destino atuais no comutador extensível para o qual o pacote será encaminhado.

    A extensão de comutador extensível chama a função GetNetBufferListDestinations para obter a matriz de destinos de porta para um pacote. GetNetBufferListDestinations retorna um ponteiro para a estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY no parâmetro Destinations.

    Para obter mais informações, consulte Consultando os dados da porta de destino extensível do comutador extensível de um pacote.

  • Adicione ou modifique as portas de destino para o pacote.

    Depois de consultar as portas de destino atuais para o pacote, a extensão de comutador extensível pode fazer o seguinte:

    • Uma extensão de encaminhamento pode adicionar novas portas de destino à estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY.
    • Uma extensão de filtragem ou encaminhamento pode modificar os dados em uma estrutura NDIS_SWITCH_PORT_DESTINATION para uma porta de destino.
      Observação Uma extensão de filtragem só pode alterar o membro IsExcluded dessa estrutura. Uma extensão de encaminhamento também pode alterar os membros PreserveVLAN e PreservePriority.
       
    Se a extensão adicionar ou modificar destinos de porta, ela deverá chamar UpdateNetBufferListDestinations confirmar as alterações nas portas de destino para os dados OOB do pacote na estrutura NET_BUFFER_LIST.

    Para obter mais informações, consulte Gerenciamento Hyper-Vde dados de porta de destino do Comutador Extensível.

Extensíveis extensíveis podem usar a macro NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX para acessar elementos NDIS_SWITCH_PORT_DESTINATION em uma matriz de NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY.

Requisitos

Requisito Valor
de cliente com suporte mínimo Com suporte no NDIS 6.30 e posterior.
cabeçalho ndis.h (inclua Ndis.h)

Consulte também

a adição de dados extensíveis de porta de destino de comutador extensível a um pacote

excluindo a entrega de pacotes para portas de destino de comutador extensível

de extensões de encaminhamento de

GetNetBufferListDestinations

de Encaminhamento Híbrido

NDIS_OBJECT_HEADER

NDIS_SWITCH_PORT_DESTINATION

NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX

NET_BUFFER_LIST

Visão geral da do Comutador Extensível Hyper-V

UpdateNetBufferListDestinations