estrutura NDIS_RECEIVE_FILTER_CAPABILITIES (ntddndis.h)
A estrutura NDIS_RECEIVE_FILTER_CAPABILITIES especifica os recursos de filtragem de recebimento de um adaptador de rede.
Os filtros de recebimento de NDIS são usados nas seguintes interfaces NDIS:
-
União de pacotes NDIS. Para obter mais informações sobre como usar filtros de recebimento nessa interface, consulte Gerenciando filtros de recebimento de união de pacotes.
-
Sr-IOV (Virtualização de E/S de Raiz Única).. Para obter mais informações sobre como usar filtros de recebimento nessa interface, consulte Configurando um filtro de recebimento em uma porta virtual.
-
VMQ (Fila de Máquina Virtual). Para obter mais informações sobre como usar filtros de recebimento nessa interface, consulte Configurando e limpando filtros VMQ.
Sintaxe
typedef struct _NDIS_RECEIVE_FILTER_CAPABILITIES {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
ULONG EnabledFilterTypes;
ULONG EnabledQueueTypes;
ULONG NumQueues;
ULONG SupportedQueueProperties;
ULONG SupportedFilterTests;
ULONG SupportedHeaders;
ULONG SupportedMacHeaderFields;
ULONG MaxMacHeaderFilters;
ULONG MaxQueueGroups;
ULONG MaxQueuesPerQueueGroup;
ULONG MinLookaheadSplitSize;
ULONG MaxLookaheadSplitSize;
ULONG SupportedARPHeaderFields;
ULONG SupportedIPv4HeaderFields;
ULONG SupportedIPv6HeaderFields;
ULONG SupportedUdpHeaderFields;
ULONG MaxFieldTestsPerPacketCoalescingFilter;
ULONG MaxPacketCoalescingFilters;
ULONG NdisReserved;
} NDIS_RECEIVE_FILTER_CAPABILITIES, *PNDIS_RECEIVE_FILTER_CAPABILITIES;
Membros
Header
A estrutura NDIS_OBJECT_HEADER para a estrutura NDIS_RECEIVE_FILTER_CAPABILITIES . O driver define o membro Type da estrutura especificada por Header como NDIS_OBJECT_TYPE_DEFAULT.
Para indicar a versão da estrutura NDIS_RECEIVE_FILTER_CAPABILITIES , o driver define o membro Revision como um dos seguintes valores:
NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2
Adicionado
vários membros para NDIS 6.30 e posterior.
O driver define o membro Size como NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2.
NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_1
Versão original do NDIS 6.20.
O driver define o membro Size como NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_1.
Flags
Um OR bit a bit de sinalizadores. Esse membro é reservado para NDIS.
EnabledFilterTypes
Um OR bit a bit de sinalizadores que especificam os tipos de filtros de recebimento habilitados. O sinalizador de tipo de filtro a seguir é válido.
NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED
Especifica que os filtros VMQ estão habilitados.
NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED
Especifica que os filtros de recebimento de união de pacotes NDIS estão habilitados.
EnabledQueueTypes
Um OR bit a bit de sinalizadores que especificam os tipos de filas de recebimento habilitadas. O sinalizador de tipo de fila a seguir é válido.
NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED
Especifica que as filas de VM (máquina virtual) estão habilitadas. As filas de VM são usadas quando o driver de miniporto está habilitado para usar a interface VMQ.
NumQueues
O número de filas de VM compatíveis com o adaptador de rede.
SupportedQueueProperties
Um OR bit a bit de sinalizadores que especificam as propriedades da fila da VM à qual o adaptador de rede dá suporte. Os seguintes sinalizadores são definidos:
NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED
O adaptador de rede usa MSI-X para a geração de interrupção da fila de recebimento. Esse sinalizador é obrigatório para drivers de miniporta que dão suporte à interface VMQ ou SR-IOV.
NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED
O adaptador de rede fornece os requisitos mínimos para dar suporte à filtragem de pacotes de fila de VM.
O driver de miniporta deve definir esse sinalizador se ele estiver habilitado para usar a interface VMQ ou SR-IOV.
Para obter mais informações sobre os requisitos de VMQ para filtragem de pacotes de fila de VM, consulte Configurando e limpando filtros VMQ.
Para obter mais informações sobre os requisitos de SR-IOV para filtragem de pacotes de fila de VM, consulte Configurando um filtro de recebimento em uma porta virtual.
NDIS_RECEIVE_FILTER_LOOKAHEAD_SPLIT_SUPPORTED
O adaptador de rede dá suporte a filas de VM que dividem um pacote recebido de entrada no deslocamento lookahead. Esse deslocamento é igual ou maior que o tamanho do lookahead solicitado. O adaptador de rede usa o AMD para transferir os dados lookahead e post-lookahead para separar segmentos de memória compartilhada.
NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED
O adaptador de rede dá suporte à capacidade de alterar dinamicamente um dos seguintes atributos de afinidade de processador:
- A afinidade de processador de uma fila de VMs na interface VMQ. A afinidade do processador é alterada por meio de uma solicitação de conjunto de OID de OID_RECEIVE_FILTER_QUEUE_PARAMETERS.
- A afinidade de processador de uma VPort (porta virtual) não padrão, que foi criada na interface SR-IOV e está anexada à PF (função física) PCI Express (PCIe) do adaptador de rede. A afinidade do processador é alterada por meio de uma solicitação de conjunto de OID de OID_NIC_SWITCH_VPORT_PARAMETERS.
NDIS_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED
O adaptador de rede dá suporte à união de interrupção para pacotes recebidos em qualquer um dos seguintes:
- Várias filas de VM na interface VMQ.
- Várias VPorts anexadas ao PF na interface SR-IOV.
NDIS_RECEIVE_FILTER_IMPLAT_MIN_OF_QUEUES_MODE
Indica que o número de filas de VM disponíveis é o número mínimo de filas disponíveis de qualquer membro de uma equipe de LBFO (Failover de Balanceamento de Carga). Esse sinalizador se aplica somente a filtros LBFO. Esse sinalizador não está definido para miniportos.
NDIS_RECEIVE_FILTER_IMPLAT_SUM_OF_QUEUES_MODE
Indica que o número de filas de VM disponíveis é a soma de todas as filas disponíveis de cada membro de uma equipe de LBFO. Esse sinalizador se aplica somente a filtros LBFO. Esse sinalizador não está definido para miniportos.
NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE
O adaptador de rede dá suporte à união de pacotes NDIS. Só há suporte para a união de pacotes na fila de recebimento padrão do adaptador de rede. Essa fila de recebimento tem um identificador de NDIS_DEFAULT_RECEIVE_QUEUE_ID.
SupportedFilterTests
Um OR bit a bit de sinalizadores que especificam as operações de teste às quais um driver de miniporto dá suporte. Os seguintes sinalizadores são definidos:
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED
O adaptador de rede dá suporte ao teste do campo de cabeçalho selecionado para determinar se ele é igual a um determinado valor.
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED
O adaptador de rede dá suporte ao mascaramento (ou seja, um AND bit a bit) do campo de cabeçalho selecionado para determinar se o resultado é igual a um valor especificado.
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED
O adaptador de rede dá suporte ao teste do campo de cabeçalho selecionado para determinar se ele não é igual a um valor especificado.
SupportedHeaders
Um OR bit a bit de sinalizadores que especificam os tipos de cabeçalhos de pacote de rede que um driver de miniporta pode inspecionar. Os seguintes sinalizadores são definidos:
NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED
O adaptador de rede pode inspecionar o cabeçalho MAC (controle de acesso à mídia) de um pacote de rede. O membro SupportedMacHeaderFields define os vários campos do cabeçalho MAC que podem ser inspecionados.
NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED
O adaptador de rede pode inspecionar o cabeçalho do Protocolo de Resolução de Endereços (ARP) de um pacote de rede. O membro SupportedArpHeaderFields define os vários campos do cabeçalho ARP que podem ser inspecionados.
NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED
O adaptador de rede pode inspecionar o cabeçalho ip versão 4 (IPv4) de um pacote de rede. O membro SupportedIPv4HeaderFields define os vários campos do cabeçalho IPv4 que podem ser inspecionados.
NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED
O adaptador de rede pode inspecionar o cabeçalho ip versão 6 (IPv6) de um pacote de rede. O membro SupportedIPv6HeaderFields define os vários campos do cabeçalho IPv6 que podem ser inspecionados.
NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED
O adaptador de rede pode inspecionar o cabeçalho UDP (User Datagram Protocol) de um pacote de rede. O membro SupportedIPv6HeaderFields define os vários campos do cabeçalho UDP que podem ser inspecionados.
SupportedMacHeaderFields
Um OR bit a bit de sinalizadores que especificam os tipos de campos de cabeçalho MAC que um driver de miniporto pode inspecionar. Os seguintes sinalizadores são definidos:
NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED
O adaptador de rede dá suporte à inspeção e filtragem com base no endereço MAC de destino no cabeçalho MAC.
NDIS_RECEIVE_FILTER_MAC_HEADER_SOURCE_ADDR_SUPPORTED
O adaptador de rede dá suporte à inspeção e filtragem com base no endereço MAC de origem no cabeçalho MAC.
NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED
O adaptador de rede dá suporte à inspeção e filtragem com base no identificador EtherType no cabeçalho MAC. Por exemplo, o identificador EtherType para pacotes IPv4 é 0x0800.
NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED
O adaptador de rede dá suporte à inspeção e filtragem com base no identificador de VLAN no cabeçalho MAC.
NDIS_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED
O adaptador de rede dá suporte à inspeção e filtragem com base na marca de prioridade no cabeçalho MAC.
NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED
O adaptador de rede dá suporte à inspeção e filtragem com base no campo tipo de pacote do cabeçalho SNAP (protocolo de acesso de sub-rede) IEEE 802.2 em um cabeçalho MAC 802.3.
MaxMacHeaderFilters
O número máximo de filtros de cabeçalho MAC compatíveis com o driver de miniporto.
MaxQueueGroups
Esse membro é reservado para o NDIS.
MaxQueuesPerQueueGroup
Esse membro é reservado para o NDIS.
MinLookaheadSplitSize
O tamanho mínimo, em bytes, que o adaptador de rede dá suporte para buffers de pacote lookahead.
MaxLookaheadSplitSize
O tamanho máximo, em bytes, que o adaptador de rede dá suporte para buffers de pacote lookahead.
SupportedARPHeaderFields
Um OR bit a bit de sinalizadores que especificam os tipos de campos de cabeçalho ARP que um driver de miniporto pode inspecionar. Os seguintes sinalizadores são definidos:
NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED
O adaptador de rede dá suporte à filtragem de recebimento no campo de operação do ARP.
NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED
O adaptador de rede dá suporte à filtragem de recebimento no campo SPA (endereço de protocolo de origem) do ARP.
NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED
O adaptador de rede dá suporte à filtragem de recebimento no campo TPA (endereço de protocolo de destino) do ARP.
SupportedIPv4HeaderFields
Um OR bit a bit de sinalizadores que especificam os tipos de campos de cabeçalho IPv4 que um driver de miniporto pode inspecionar. Os seguintes sinalizadores são definidos:
NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED
O adaptador de rede dá suporte à filtragem de recebimento no campo protocolo IPv4.
SupportedIPv6HeaderFields
Um OR bit a bit de sinalizadores que especificam os tipos de campos de cabeçalho IPv6 que um driver de miniporto pode inspecionar. Os seguintes sinalizadores são definidos:
NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED
O adaptador de rede dá suporte à filtragem de recebimento no campo protocolo IPv6.
SupportedUdpHeaderFields
Um OR bit a bit de sinalizadores que especificam os tipos de campos de cabeçalho IPv6 que um driver de miniporto pode inspecionar. Os seguintes sinalizadores são definidos:
NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED
O adaptador de rede dá suporte à filtragem de recebimento no campo porta de destino UDP.
MaxFieldTestsPerPacketCoalescingFilter
O número máximo de testes em campos de cabeçalho de pacote que podem ser especificados para um único filtro de agrupamento de pacotes. Para obter mais informações sobre a união de pacotes, consulte Agrupamento de pacotes NDIS.
MaxPacketCoalescingFilters
O número máximo de filtros de recebimento de agrupamento de pacotes compatíveis com o adaptador de rede.
NdisReserved
Reservado. Defina como 0.
Comentários
A estrutura NDIS_RECEIVE_FILTER_CAPABILITIES é usada no membro ReceiveFilterCapabilities do NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES, NDIS_FILTER_ATTACH_PARAMETERS e estruturas NDIS_BIND_PARAMETERS e o resultado de retorno do OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES Consulta OID.
Muitos dos membros e as configurações de sinalizador da estrutura NDIS_RECEIVE_FILTER_CAPABILITIES são válidas somente se o driver de miniporto estiver habilitado para usar a interface VMQ ou SR-IOV. O driver de miniporto está habilitado para usar essas interfaces por meio de palavras-chave INF padronizadas. Para obter mais informações, consulte Manipulando palavras-chave INF padronizadas em SR-IOV, VMQ e RSS.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.20 e posterior. |
Cabeçalho | ntddndis.h (inclua Ndis.h) |
Confira também
NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES OID_RECEIVE_FILTER_HARDWARE_CAPABILITIESComentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de