structure NDIS_RECEIVE_FILTER_CAPABILITIES (ntddndis.h)

La structure NDIS_RECEIVE_FILTER_CAPABILITIES spécifie les fonctionnalités de filtrage de réception d’une carte réseau.

Les filtres de réception NDIS sont utilisés dans les interfaces NDIS suivantes :

Syntaxe

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;

Membres

Header

Structure NDIS_OBJECT_HEADER de la structure NDIS_RECEIVE_FILTER_CAPABILITIES . Le pilote définit le membre Type de la structure que l’en-tête spécifie sur NDIS_OBJECT_TYPE_DEFAULT.

Pour indiquer la version de la structure NDIS_RECEIVE_FILTER_CAPABILITIES , le pilote définit le membre Revision sur l’une des valeurs suivantes :

NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2

Ajouté
différents membres pour NDIS 6.30 et versions ultérieures.

Le pilote définit le membre Size sur NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2.

NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_1

Version d’origine pour NDIS 6.20.

Le pilote définit le membre Size sur NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_1.

Flags

Or au niveau du bit d’indicateurs. Ce membre est réservé à NDIS.

EnabledFilterTypes

OR au niveau du bit des indicateurs qui spécifient les types de filtres de réception activés. L’indicateur de type de filtre suivant est valide.

NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED

Spécifie que les filtres VMQ sont activés.

Note Le pilote miniport doit définir cet indicateur si le pilote miniport est activé pour utiliser l’interface SR-IOV.
 

NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED

Spécifie que les filtres de réception de fusion de paquets NDIS sont activés.

EnabledQueueTypes

Or au niveau du bit des indicateurs qui spécifient les types de files d’attente de réception activées. L’indicateur de type de file d’attente suivant est valide.

NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED

Spécifie que les files d’attente de machines virtuelles sont activées. Les files d’attente de machine virtuelle sont utilisées lorsque le pilote miniport est activé pour utiliser l’interface VMQ.

Note Le pilote miniport ne doit pas définir cet indicateur si le pilote miniport est activé pour utiliser uniquement l’interface SR-IOV. Pour plus d’informations sur la façon dont ces interfaces sont activées, consultez Gestion des mots clés INF standardisés SR-IOV, VMQ et RSS.
 

NumQueues

Nombre de files d’attente de machines virtuelles que la carte réseau prend en charge.

Note Si le pilote miniport est activé pour utiliser l’interface SR-IOV, il doit définir ce membre sur zéro. Lorsque l’utilisation de l’interface SR-IOV est activée, NDIS utilise des ports virtuels (VPorts) pour les files d’attente de réception et de transmission au lieu de files d’attente de machines virtuelles.
 

SupportedQueueProperties

OR au niveau du bit des indicateurs qui spécifient les propriétés de file d’attente de machine virtuelle prises en charge par la carte réseau. Les indicateurs suivants sont définis :

NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED

La carte réseau utilise MSI-X pour la génération d’interruption de file d’attente de réception. Cet indicateur est obligatoire pour les pilotes miniport qui prennent en charge l’interface VMQ ou SR-IOV.

NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED

La carte réseau fournit la configuration minimale requise pour prendre en charge le filtrage des paquets de file d’attente de machine virtuelle.

Le pilote miniport doit définir cet indicateur s’il est activé pour utiliser l’interface VMQ ou SR-IOV.

Pour plus d’informations sur les exigences de VMQ pour le filtrage des paquets de files d’attente de machines virtuelles, consultez Définition et suppression des filtres VMQ.

Pour plus d’informations sur les exigences SR-IOV pour le filtrage des paquets de file d’attente de machine virtuelle, consultez Définition d’un filtre de réception sur un port virtuel.

NDIS_RECEIVE_FILTER_LOOKAHEAD_SPLIT_SUPPORTED

La carte réseau prend en charge les files d’attente de machines virtuelles qui fractionne un paquet reçu entrant au décalage du lookahead. Ce décalage est égal ou supérieur à la taille de lookahead demandée. La carte réseau utilise DMA pour transférer les données de lookahead et post-lookahead vers des segments de mémoire partagés distincts.

Note À compter de NDIS 6.30, le fractionnement des données de paquets en mémoire tampons de recherche distinctes n’est plus pris en charge. Les pilotes miniports qui prennent en charge cette version de NDIS ne doivent pas définir cet indicateur.
 

NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED

La carte réseau prend en charge la possibilité de modifier dynamiquement l’un des attributs d’affinité processeur suivants :

  • Affinité processeur d’une file d’attente de machines virtuelles dans l’interface VMQ. L’affinité processeur est modifiée par le biais d’une demande de jeu OID de OID_RECEIVE_FILTER_QUEUE_PARAMETERS.
  • Affinité processeur d’un port virtuel non par défaut (VPort), qui a été créé dans l’interface SR-IOV et est attaché à la fonction physique PCI Express (PCIe) de la carte réseau. L’affinité processeur est modifiée via une demande de jeu OID de OID_NIC_SWITCH_VPORT_PARAMETERS.
Note Cet indicateur est pris en charge dans NDIS 6.30 et versions ultérieures. Les pilotes miniports qui prennent en charge l’interface VMQ ou SR-IOV doivent définir cet indicateur.
 

NDIS_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED

La carte réseau prend en charge la fusion des interruptions pour les paquets reçus sur l’un des éléments suivants :

  • Plusieurs files d’attente de machines virtuelles dans l’interface VMQ.
  • Plusieurs VPorts qui sont attachés au PF dans l’interface SR-IOV.
Si cet indicateur est défini, la carte réseau doit fusionner les interruptions de réception pour les files d’attente de machines virtuelles ou les VPorts qui ont la même affinité de processeur.
Note Cet indicateur est pris en charge dans NDIS 6.30 et versions ultérieures. Les pilotes miniports qui prennent en charge l’interface VMQ ou SR-IOV doivent définir cet indicateur.
 

NDIS_RECEIVE_FILTER_IMPLAT_MIN_OF_QUEUES_MODE

Indique que le nombre de files d’attente de machines virtuelles disponibles correspond au nombre minimal de files d’attente disponibles de n’importe quel membre d’une équipe d’équilibrage de charge sur le basculement (LBFO). Cet indicateur s’applique uniquement aux filtres LBFO. Cet indicateur n’est pas défini pour les miniports.

NDIS_RECEIVE_FILTER_IMPLAT_SUM_OF_QUEUES_MODE

Indique que le nombre de files d’attente de machines virtuelles disponibles est la somme de toutes les files d’attente disponibles de chaque membre d’une équipe LBFO. Cet indicateur s’applique uniquement aux filtres LBFO. Cet indicateur n’est pas défini pour les miniports.

NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE

La carte réseau prend en charge le regroupement de paquets NDIS. La fusion de paquets n’est prise en charge que dans la file d’attente de réception par défaut de la carte réseau. Cette file d’attente de réception a un identificateur de NDIS_DEFAULT_RECEIVE_QUEUE_ID.

Note Cet indicateur est pris en charge dans NDIS 6.30 et versions ultérieures.
 

SupportedFilterTests

OR au niveau du bit des indicateurs qui spécifient les opérations de test qu’un pilote miniport prend en charge. Les indicateurs suivants sont définis :

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED

La carte réseau prend en charge le test du champ d’en-tête sélectionné pour déterminer s’il est égal à une valeur donnée.

Note Si le pilote miniport prend en charge les interfaces VMQ ou SR-IOV, il doit définir cet indicateur.
 

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED

La carte réseau prend en charge le masquage (c’est-à-dire un bit AND) du champ d’en-tête sélectionné pour déterminer si le résultat est égal à une valeur spécifiée.

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED

La carte réseau prend en charge le test du champ d’en-tête sélectionné pour déterminer s’il n’est pas égal à une valeur spécifiée.

Note Cet indicateur est pris en charge dans NDIS 6.30 et versions ultérieures.
 

SupportedHeaders

OR au niveau du bit des indicateurs qui spécifient les types d’en-têtes de paquets réseau qu’un pilote miniport peut inspecter. Les indicateurs suivants sont définis :

NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED

La carte réseau peut inspecter l’en-tête de contrôle d’accès multimédia (MAC) d’un paquet réseau. Le membre SupportedMacHeaderFields définit les différents champs de l’en-tête MAC qui peuvent être inspectés.

NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED

La carte réseau peut inspecter l’en-tête ARP (Address Resolution Protocol) d’un paquet réseau. Le membre SupportedArpHeaderFields définit les différents champs de l’en-tête ARP qui peuvent être inspectés.

Note Cet indicateur est pris en charge dans NDIS 6.30 et versions ultérieures.
 

NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED

La carte réseau peut inspecter l’en-tête IP version 4 (IPv4) d’un paquet réseau. Le membre SupportedIPv4HeaderFields définit les différents champs de l’en-tête IPv4 qui peuvent être inspectés.

Note Cet indicateur est pris en charge dans NDIS 6.30 et versions ultérieures.
 

NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED

La carte réseau peut inspecter l’en-tête IP version 6 (IPv6) d’un paquet réseau. Le membre SupportedIPv6HeaderFields définit les différents champs de l’en-tête IPv6 qui peuvent être inspectés.

Note Cet indicateur est pris en charge dans NDIS 6.30 et versions ultérieures.
 

NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED

La carte réseau peut inspecter l’en-tête UDP (User Datagram Protocol) d’un paquet réseau. Le membre SupportedIPv6HeaderFields définit les différents champs de l’en-tête UDP qui peuvent être inspectés.

Note Cet indicateur est pris en charge dans NDIS 6.30 et versions ultérieures.
 

SupportedMacHeaderFields

Ou au niveau du bit des indicateurs qui spécifient les types de champs d’en-tête MAC qu’un pilote de miniport peut inspecter. Les indicateurs suivants sont définis :

NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED

La carte réseau prend en charge l’inspection et le filtrage basés sur l’adresse MAC de destination dans l’en-tête MAC.

Note À compter de NDIS 6.30, les pilotes miniport qui prennent en charge l’interface VMQ ou SR-IOV doivent définir cet indicateur.
 

NDIS_RECEIVE_FILTER_MAC_HEADER_SOURCE_ADDR_SUPPORTED

La carte réseau prend en charge l’inspection et le filtrage basés sur l’adresse MAC source dans l’en-tête MAC.

NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED

La carte réseau prend en charge l’inspection et le filtrage basés sur l’identificateur EtherType dans l’en-tête MAC. Par exemple, l’identificateur EtherType pour les paquets IPv4 est 0x0800.

NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED

La carte réseau prend en charge l’inspection et le filtrage basés sur l’identificateur de réseau local virtuel dans l’en-tête MAC.

Note À compter de NDIS 6.30, cet indicateur est facultatif. Si le pilote miniport ne définit pas cet indicateur, la carte réseau doit inspecter et filtrer les champs d’adresse MAC spécifiés. Si une balise VLAN est présente dans le paquet reçu, la carte réseau doit la supprimer des données du paquet. Le pilote miniport doit placer la balise VLAN dans une structure NDIS_NET_BUFFER_LIST_8021Q_INFO associée à la structure NET_BUFFER_LIST du paquet.
 

NDIS_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED

La carte réseau prend en charge l’inspection et le filtrage basés sur la balise de priorité dans l’en-tête MAC.

NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED

La carte réseau prend en charge l’inspection et le filtrage basés sur le champ de type de paquet de l’en-tête SNAP (Subnetwork Access Protocol) IEEE 802.2 dans un en-tête MAC 802.3.

Note Cet indicateur est pris en charge dans NDIS 6.30 et versions ultérieures.
 

MaxMacHeaderFilters

Nombre maximal de filtres d’en-tête MAC pris en charge par le pilote miniport.

MaxQueueGroups

Ce membre est réservé à NDIS.

MaxQueuesPerQueueGroup

Ce membre est réservé à NDIS.

MinLookaheadSplitSize

Taille minimale, en octets, prise en charge par la carte réseau pour les mémoires tampons de paquets de lookahead.

Note À compter de NDIS 6.30, le fractionnement des données de paquets en mémoires tampons de recherche distinctes n’est plus pris en charge. Les pilotes Miniport qui prennent en charge cette version de NDIS doivent définir ce membre sur zéro.
 

MaxLookaheadSplitSize

Taille maximale, en octets, prise en charge par la carte réseau pour les mémoires tampons de paquets de lookahead.

Note À compter de NDIS 6.30, le fractionnement des données de paquets en mémoires tampons de recherche distinctes n’est plus pris en charge. Les pilotes Miniport qui prennent en charge cette version de NDIS doivent définir ce membre sur zéro.
 

SupportedARPHeaderFields

Ou au niveau du bit des indicateurs qui spécifient les types de champs d’en-tête ARP qu’un pilote de miniport peut inspecter. Les indicateurs suivants sont définis :

NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED

La carte réseau prend en charge le filtrage de réception sur le champ d’opération ARP.

NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED

La carte réseau prend en charge le filtrage de réception sur le champ Adresse de protocole source (SPA) ARP.

NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED

La carte réseau prend en charge le filtrage de réception sur le champ Adresse de protocole cible (TPA) ARP.

SupportedIPv4HeaderFields

Or au niveau du bit d’indicateurs qui spécifient les types de champs d’en-tête IPv4 qu’un pilote de miniport peut inspecter. Les indicateurs suivants sont définis :

NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED

La carte réseau prend en charge le filtrage de réception sur le champ de protocole IPv4.

SupportedIPv6HeaderFields

Ou au niveau du bit des indicateurs qui spécifient les types de champs d’en-tête IPv6 qu’un pilote miniport peut inspecter. Les indicateurs suivants sont définis :

NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED

La carte réseau prend en charge le filtrage de réception sur le champ de protocole IPv6.

SupportedUdpHeaderFields

Ou au niveau du bit des indicateurs qui spécifient les types de champs d’en-tête IPv6 qu’un pilote miniport peut inspecter. Les indicateurs suivants sont définis :

NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED

La carte réseau prend en charge le filtrage de réception sur le champ port de destination UDP.

Note Si le paquet UDP reçu contient des options IPv4 ou des en-têtes d’extension IPv6, la carte réseau peut supprimer automatiquement le paquet reçu et le traiter comme si le test de filtre UDP avait échoué.
 

MaxFieldTestsPerPacketCoalescingFilter

Nombre maximal de tests sur les champs d’en-tête de paquet qui peuvent être spécifiés pour un filtre de fusion de paquets unique. Pour plus d’informations sur la fusion des paquets, consultez Coalescing de paquets NDIS.

Note Les cartes réseau qui prennent en charge la fusion de paquets doivent prendre en charge au moins cinq champs d’en-tête de paquets qui peuvent être spécifiés pour un filtre de fusion de paquets unique. Si l’adaptateur ne prend pas en charge la fusion des paquets, le pilote miniport doit définir cette valeur sur zéro.
 

MaxPacketCoalescingFilters

Nombre maximal de filtres de réception de fusion de paquets pris en charge par la carte réseau.

Note Les cartes réseau qui prennent en charge la fusion de paquets doivent prendre en charge au moins dix filtres de fusion de paquets. Si l’adaptateur ne prend pas en charge la fusion des paquets, le pilote miniport doit définir cette valeur sur zéro.
 

NdisReserved

Réservé. Définit la valeur 0.

Remarques

La structure NDIS_RECEIVE_FILTER_CAPABILITIES est utilisée dans le membre ReceiveFilterCapabilities du NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES, NDIS_FILTER_ATTACH_PARAMETERS et NDIS_BIND_PARAMETERS structures et le résultat de retour de la OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES Requête OID.

La plupart des membres et des paramètres d’indicateur de la structure NDIS_RECEIVE_FILTER_CAPABILITIES sont valides uniquement si le pilote miniport est activé pour utiliser l’interface VMQ ou SR-IOV. Le pilote miniport est activé pour utiliser ces interfaces via des mots clés INF standardisés. Pour plus d’informations, consultez Gestion des mots clés INF standardisés SR-IOV, VMQ et RSS.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.20 et versions ultérieures.
En-tête ntddndis.h (include Ndis.h)

Voir aussi

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