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:

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.

Nota O driver de miniporta deve definir esse sinalizador se o driver de miniporto estiver habilitado para usar a interface SR-IOV.
 

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.

Nota O driver de miniporto não deverá definir esse sinalizador se o driver de miniporto estiver habilitado para usar apenas a interface SR-IOV. Para obter mais informações sobre como essas interfaces estão habilitadas, consulte Manipulando palavras-chave SR-IOV, VMQ e RSS STANDARDized INF.
 

NumQueues

O número de filas de VM compatíveis com o adaptador de rede.

Nota Se o driver de miniporto estiver habilitado para usar a interface SR-IOV, ele deverá definir esse membro como zero. Quando o uso da interface SR-IOV está habilitado, o NDIS usa portas virtuais (VPorts) para receber e transmitir filas em vez de filas de VM.
 

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.

Nota A partir do NDIS 6.30, não há mais suporte para a divisão de dados de pacote em buffers lookahead separados. Os drivers de miniport que dão suporte a essa versão do NDIS não devem definir esse sinalizador.
 

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.
Nota Esse sinalizador tem suporte no NDIS 6.30 e posterior. Os drivers de miniport que dão suporte à interface VMQ ou SR-IOV devem definir esse sinalizador.
 

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.
Se esse sinalizador for definido, o adaptador de rede deverá unir interrupções de recebimento para filas de VM ou VPorts que tenham a mesma afinidade de processador.
Nota Esse sinalizador tem suporte no NDIS 6.30 e posterior. Os drivers de miniport que dão suporte à interface VMQ ou SR-IOV devem definir esse sinalizador.
 

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.

Nota Esse sinalizador tem suporte no NDIS 6.30 e posterior.
 

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.

Nota Se o driver de miniporto der suporte às interfaces VMQ ou SR-IOV, ele deverá definir esse sinalizador.
 

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.

Nota Esse sinalizador tem suporte no NDIS 6.30 e posterior.
 

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.

Nota Esse sinalizador tem suporte no NDIS 6.30 e posterior.
 

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.

Nota Esse sinalizador tem suporte no NDIS 6.30 e posterior.
 

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.

Nota Esse sinalizador tem suporte no NDIS 6.30 e posterior.
 

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.

Nota Esse sinalizador tem suporte no NDIS 6.30 e posterior.
 

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.

Nota A partir do NDIS 6.30, os drivers de miniport que dão suporte à interface VMQ ou SR-IOV devem definir esse sinalizador.
 

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.

Nota A partir do NDIS 6.30, esse sinalizador é opcional. Se o driver de miniporto não definir esse sinalizador, o adaptador de rede deverá inspecionar e filtrar os campos de endereço MAC especificados. Se uma marca VLAN estiver presente no pacote recebido, o adaptador de rede deverá removê-la dos dados do pacote. O driver de miniporto deve colocar a marca VLAN em uma estrutura NDIS_NET_BUFFER_LIST_8021Q_INFO associada à estrutura NET_BUFFER_LIST do pacote.
 

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.

Nota Esse sinalizador tem suporte no NDIS 6.30 e posterior.
 

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.

Nota A partir do NDIS 6.30, não há mais suporte para a divisão de dados de pacotes em buffers lookahead separados. Os drivers de miniport que dão suporte a essa versão do NDIS devem definir esse membro como zero.
 

MaxLookaheadSplitSize

O tamanho máximo, em bytes, que o adaptador de rede dá suporte para buffers de pacote lookahead.

Nota A partir do NDIS 6.30, não há mais suporte para a divisão de dados de pacotes em buffers lookahead separados. Os drivers de miniport que dão suporte a essa versão do NDIS devem definir esse membro como zero.
 

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.

Nota Se o pacote UDP recebido contiver opções IPv4 ou cabeçalhos de extensão IPv6, o adaptador de rede poderá remover automaticamente o pacote recebido e tratá-lo como se tivesse falhado no teste de filtro 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.

Nota Os adaptadores de rede que dão suporte à união de pacotes devem dar suporte a cinco ou mais campos de cabeçalho de pacote que podem ser especificados para um único filtro de agrupamento de pacotes. Se o adaptador não der suporte à união de pacotes, o driver de miniporto deverá definir esse valor como zero.
 

MaxPacketCoalescingFilters

O número máximo de filtros de recebimento de agrupamento de pacotes compatíveis com o adaptador de rede.

Nota Os adaptadores de rede que dão suporte à união de pacotes devem dar suporte a dez ou mais filtros de agrupamento de pacotes. Se o adaptador não der suporte à união de pacotes, o driver de miniporto deverá definir esse valor como zero.
 

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_BIND_PARAMETERS

NDIS_FILTER_ATTACH_PARAMETERS

NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES

NDIS_OBJECT_HEADER

NDIS_RECEIVE_QUEUE_INFO

NDIS_RECEIVE_QUEUE_PARAMETERS

OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES