estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY (ndis.h)
A estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY especifica uma matriz de portas de destino do comutador extensível do 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 Type de Header deve ser definido como NDIS_OBJECT_TYPE_DEFAULT. Para especificar a versão da estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY , o membro Revision de Header deve ser definido com o seguinte valor:
NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1
Versão original do NDIS 6.30 e posterior.
Defina o membro Size 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 de 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 especificam destinos de porta.
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.
Comentários
A extensão de comutador extensível pode fazer o seguinte com as portas de destino na estrutura NET_BUFFER_LIST de um pacote:
-
Consulte as portas de destino atuais na opção extensível para a 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 dados de porta de destino de 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 dentro de uma estrutura NDIS_SWITCH_PORT_DESTINATION para uma porta de destino.
Nota 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 .
Para obter mais informações, consulte Gerenciando dados de porta de destino do comutador extensível do Hyper-V.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.30 e posterior. |
Cabeçalho | ndis.h (inclua Ndis.h) |
Confira também
Adicionando dados de porta de destino do comutador extensível a um pacote
Excluindo a entrega de pacotes para portas de destino comutador extensível
NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX