Compartilhar via


NDIS_RECEIVE_FILTER_CAPABILITIES estrutura (ntddndis.h)

A estrutura NDIS_RECEIVE_FILTER_CAPABILITIES especifica os recursos de filtragem de recebimento de um adaptador de rede.

Os filtros de recebimento do 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 Type membro da estrutura que header especifica para NDIS_OBJECT_TYPE_DEFAULT.

Para indicar a versão da estrutura de NDIS_RECEIVE_FILTER_CAPABILITIES, o driver define o membro Revisão como um dos seguintes valores:

NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2

Adicionado
vários membros para NDIS 6.30 e posteriores.

O driver define o membro tamanho 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 tamanho como NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_1.

Flags

Um OR bit a bit de sinalizadores. Este 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.

Observação O driver de miniporto deverá 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 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.

Observação 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 Tratando palavras-chave SR-IOV, VMQ e RSS Standardized INF.
 

NumQueues

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

Observação 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 é habilitado, o NDIS usa VPorts (portas virtuais) 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 de VM que 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 receber a geração de interrupção da fila. Esse sinalizador é obrigatório para drivers de miniporto 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 miniporto deverá definir esse sinalizador se ele estiver habilitado para usar o VMQ ou SR-IOV interface.

Para obter mais informações sobre os requisitos de VMQ para filtragem de pacotes de fila de VM, consulte Configuração e limpeza de filtros VMQ.

Para obter mais informações sobre SR-IOV requisitos 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 DMA para transferir os dados lookahead e pós-lookahead para separar segmentos de memória compartilhada.

Observação Começando com o 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 do processador de uma fila de VM na interface VMQ. A afinidade do processador é alterada por meio de uma solicitação de conjunto 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 à função física PCI Express (PCIe) do adaptador de rede. A afinidade do processador é alterada por meio de uma solicitação de conjunto OID de OID_NIC_SWITCH_VPORT_PARAMETERS.
Observação 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 à coalescagem de interrupção para pacotes recebidos em qualquer um dos seguintes:

  • Várias filas de VM na interface VMQ.
  • Vários VPorts anexados ao PF na interface SR-IOV.
Se esse sinalizador estiver definido, o adaptador de rede deverá unir interrupções de recebimento para filas de VM ou VPorts que tenham a mesma afinidade de processador.
Observação 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. Este 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 lbfo. Esse sinalizador se aplica somente a filtros LBFO. Este sinalizador não está definido para miniportos.

NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE

O adaptador de rede dá suporte à junção de pacotes NDIS. O agrupamento de pacotes só tem suporte na fila de recebimento padrão do adaptador de rede. Essa fila de recebimento tem um identificador de NDIS_DEFAULT_RECEIVE_QUEUE_ID.

Observação Esse sinalizador tem suporte no NDIS 6.30 e posterior.
 

SupportedFilterTests

Um OR bit a bit de sinalizadores que especifica 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.

Observação 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.

Observação Esse sinalizador tem suporte no NDIS 6.30 e posterior.
 

SupportedHeaders

Um OR bit a bit de sinalizadores que especifica os tipos de cabeçalhos de pacote de rede que um driver de miniporto 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 ARP (Address Resolution Protocol) de um pacote de rede. O membro supportedArpHeaderFields define os vários campos do cabeçalho ARP que podem ser inspecionados.

Observação 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 do define os vários campos do cabeçalho IPv4 que podem ser inspecionados.

Observação 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.

Observação 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 do define os vários campos do cabeçalho UDP que podem ser inspecionados.

Observação Esse sinalizador tem suporte no NDIS 6.30 e posterior.
 

SupportedMacHeaderFields

Um OR bit a bit de sinalizadores que especifica 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.

Observação Começando com o 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 baseadas 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.

Observação Começando com o 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 de 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 de tipo de pacote do cabeçalho SNAP (protocolo de acesso de sub-rede) IEEE 802.2 em um cabeçalho MAC 802.3.

Observação Esse sinalizador tem suporte no NDIS 6.30 e posterior.
 

MaxMacHeaderFilters

O número máximo de filtros de cabeçalho MAC aos quais o driver de miniporto dá suporte.

MaxQueueGroups

Este membro é reservado para NDIS.

MaxQueuesPerQueueGroup

Este membro é reservado para NDIS.

MinLookaheadSplitSize

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

Observação Começando com o 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 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.

Observação Começando com o 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 devem definir esse membro como zero.
 

SupportedARPHeaderFields

Um OR bit a bit de sinalizadores que especifica 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 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 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 especifica 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 de protocolo IPv4.

SupportedIPv6HeaderFields

Um OR bit a bit de sinalizadores que especifica 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 de protocolo IPv6.

SupportedUdpHeaderFields

Um OR bit a bit de sinalizadores que especifica 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 de porta de destino UDP.

Observação 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 coalescagem de pacotes, consulte NDIS Packet Coalescing.

Observação adaptadores de rede que dão suporte à coalescagem de pacote 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 à junção de pacotes, o driver de miniporto deverá definir esse valor como zero.
 

MaxPacketCoalescingFilters

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

Observação Adaptadores de rede que dão suporte à associação de pacotes devem dar suporte a dez ou mais filtros de agrupamento de pacotes. Se o adaptador não der suporte à junção de pacotes, o driver de miniporto deverá definir esse valor como zero.
 

NdisReserved

Reservado. Definido como 0.

Observações

A estrutura NDIS_RECEIVE_FILTER_CAPABILITIES é usada no membro ReceiveFilterCapabilities do NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES, NDIS_FILTER_ATTACH_PARAMETERSe NDIS_BIND_PARAMETERS estruturas e o resultado de retorno do OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES consulta OID.

Muitos dos membros e as configurações de sinalizador da estrutura de NDIS_RECEIVE_FILTER_CAPABILITIES serão válidas somente se o driver de miniporto estiver habilitado para usar o VMQ ou SR-IOV interface. O driver de miniporto está habilitado para usar essas interfaces por meio de palavras-chave INF padronizadas. Para obter mais informações, consulte tratando palavras-chave SR-IOV, VMQ e RSS Standardized INF.

Requisitos

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

Consulte 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