structure NDIS_RECEIVE_FILTER_PARAMETERS (ntddndis.h)
La structure NDIS_RECEIVE_FILTER_PARAMETERS spécifie les paramètres d’un filtre de réception NDIS.
Les filtres de réception NDIS sont utilisés dans les interfaces NDIS suivantes :
-
Fusion des paquets NDIS. Pour plus d’informations sur l’utilisation des filtres de réception dans cette technologie, consultez Gestion des filtres de réception de fusion de paquets.
-
Virtualisation d’E/S racine unique (SR-IOV). Pour plus d’informations sur l’utilisation des filtres de réception dans cette technologie, consultez Définition d’un filtre de réception sur un port virtuel.
-
Virtual Machine Queue (VMQ). Pour plus d’informations sur l’utilisation des filtres de réception dans cette interface, consultez Définition et effacement des filtres VMQ.
Syntaxe
typedef struct _NDIS_RECEIVE_FILTER_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
NDIS_RECEIVE_FILTER_TYPE FilterType;
NDIS_RECEIVE_QUEUE_ID QueueId;
NDIS_RECEIVE_FILTER_ID FilterId;
ULONG FieldParametersArrayOffset;
ULONG FieldParametersArrayNumElements;
ULONG FieldParametersArrayElementSize;
ULONG RequestedFilterIdBitCount;
ULONG MaxCoalescingDelay;
NDIS_NIC_SWITCH_VPORT_ID VPortId;
} NDIS_RECEIVE_FILTER_PARAMETERS, *PNDIS_RECEIVE_FILTER_PARAMETERS;
Membres
Header
Structure NDIS_OBJECT_HEADER pour la structure NDIS_RECEIVE_FILTER_PARAMETERS . Le pilote définit le membre Type de la structure spécifiée par Header sur NDIS_OBJECT_TYPE_DEFAULT.
Pour indiquer la version de la structure NDIS_RECEIVE_FILTER_PARAMETERS , le pilote définit le membre Revision sur l’une des valeurs suivantes :
NDIS_RECEIVE_FILTER_PARAMETERS_REVISION_2
Ajout des membres VPortId et MaxCoalescingDelay pour NDIS 6.30.
Le pilote définit le membre Size sur NDIS_SIZEOF_RECEIVE_FILTER_PARAMETERS_REVISION_2.
NDIS_RECEIVE_FILTER_PARAMETERS_REVISION_1
Version d’origine de NDIS 6.20.
Le pilote définit le membre Size sur NDIS_SIZEOF_RECEIVE_FILTER_PARAMETERS_REVISION_1.
Flags
Or au niveau du bit des indicateurs suivants.
Version | Valeur | Signification |
---|---|---|
NDIS 6.50 et versions ultérieures | NDIS_RECEIVE_FILTER_PACKET_ENCAPSULATION 0x00000002 | Si cet indicateur est défini sur le filtre de réception, la carte réseau doit correspondre à cette adresse MAC dans le cadre Ethernet interne dans les paquets encapsulés. |
NDIS 6.20 à NDIS 6.40 | 0x00000002 NDIS_RECEIVE_FILTER_PACKET_ENCAPSULATION_GRE | Si cet indicateur est défini sur le filtre de réception, la carte réseau doit correspondre à cette adresse MAC dans le cadre Ethernet interne dans les paquets encapsulés GRE. |
FilterType
Type du filtre de réception.
QueueId
Identificateur de file d’attente de réception. Cet identificateur est un entier compris entre zéro et le nombre de files d’attente que la carte réseau prend en charge. La valeur NDIS_DEFAULT_RECEIVE_QUEUE_ID spécifie la file d’attente de réception par défaut.
FilterId
Identificateur de filtre de réception. L’identificateur de filtre est un entier compris entre un et le nombre de filtres de réception pris en charge par la carte réseau. La valeur zéro n’est pas valide.
FieldParametersArrayOffset
Décalage, en octets, du premier élément d’un tableau d’éléments qui suivent cette structure. Le décalage est mesuré du début de la structure NDIS_RECEIVE_FILTER_PARAMETERS jusqu’au début du premier élément. Chaque élément du tableau est une structure NDIS_RECEIVE_FILTER_FIELD_PARAMETERS .
FieldParametersArrayNumElements
Nombre d’éléments dans le tableau.
FieldParametersArrayElementSize
Taille en octets de chaque élément contenu dans le tableau.
RequestedFilterIdBitCount
Nombre de bits dans un identificateur de filtre. Le pilote miniport utilise ce nombre de bits pour l’identificateur de filtre dans les données OOB (Hors bande) NetBufferListFilteringInfo dans NET_BUFFER_LIST structures. Si ce membre est égal à zéro, un pilote miniport ne doit pas spécifier l’identificateur de filtre dans les données OOB NetBufferListFilteringInfo .
À compter de NDIS 6.20, ce membre doit être défini sur zéro.
MaxCoalescingDelay
Durée maximale, en millisecondes, pendant laquelle le premier paquet correspondant à ce filtre de réception est enregistré dans la mémoire tampon de fusion matérielle sur la carte réseau.
Dès que le premier paquet correspondant au filtre est reçu, la carte réseau fusionne le paquet. L’adaptateur démarre également un minuteur matériel dont l’heure d’expiration est définie sur la valeur du membre MaxCoalescingDelay . Les paquets supplémentaires qui correspondent au même filtre doivent être coalescés par l’adaptateur sans réinitialiser et redémarrer le minuteur matériel.
Lorsque le minuteur matériel expire, l’adaptateur doit générer une interruption de réception pour signaler à l’hôte les paquets coalescés qui correspondent au filtre de réception.
VPortId
Identificateur VPort sur lequel le filtre de réception doit être configuré. La valeur NDIS_DEFAULT_VPORT_ID spécifie le VPort par défaut attaché à la fonction physique PCI Express (PCIe) de la carte réseau.
Remarques
La structure NDIS_RECEIVE_FILTER_PARAMETERS est utilisée avec les requêtes OID de
OID_RECEIVE_FILTER_PARAMETERS et
OID_RECEIVE_FILTER_SET_FILTER. Ces requêtes OID spécifient les paramètres de configuration d’un filtre. Une spécification de filtre peut inclure des tests pour plusieurs champs dans un paquet réseau.
Les membres FieldParametersArrayOffset, FieldParametersArrayNumElements et FieldParametersArrayElementSize de la structure NDIS_RECEIVE_FILTER_PARAMETERS définissent un tableau de NDIS_RECEIVE_FILTER_FIELD_PARAMETERS structures. Chaque structure NDIS_RECEIVE_FILTER_FIELD_PARAMETERS dans le tableau définit le critère de test de filtre pour un champ dans un en-tête de réseau.
La carte réseau combine les résultats de tous les tests sur le terrain avec une opération AND logique. Autrement dit, si un test sur le terrain inclus dans le tableau de structures NDIS_RECEIVE_FILTER_FIELD_PARAMETERS échoue, le paquet réseau ne répond pas au critère de filtre spécifié.
Lorsqu’une carte réseau teste un paquet reçu par rapport à ces critères de filtre, elle doit ignorer tous les champs du paquet où aucun critère de test n’est spécifié.
Si le paquet répond au critère de filtre, la carte réseau doit effectuer l’une des opérations suivantes :
-
Si la carte réseau prend en charge la fusion de paquets de réception NDIS, l’adaptateur doit fusionner le paquet qui correspond au filtre. L’adaptateur doit également fusionner les paquets reçus qui correspondent aux filtres de réception identiques ou différents. L’adaptateur doit s’interrompre lors de la génération de l’interruption de réception jusqu’à ce qu’un autre événement matériel se produise, tel que le suivant :
- Expiration d’un minuteur matériel dont l’heure d’expiration est définie sur la valeur du membre MaxCoalescingDelay .
- L’espace disponible dans la mémoire tampon de fusion matérielle atteint une limite de faible débit spécifique à l’adaptateur.
Pour plus d’informations, consultez Gestion des filtres de réception de fusion de paquets.
-
Si la carte réseau prend en charge l’interface SR-IOV, elle doit transférer le paquet à la file d’attente de réception d’un VPort par défaut ou non par défaut. La file d’attente de réception est spécifiée par le membre QueueId et le VPort est spécifié par le membre VPortId .
Note À compter de Windows Server 2012, l’interface SR-IOV prend uniquement en charge la file d’attente de réception par défaut sur les VPorts par défaut et non par défaut. La file d’attente de réception par défaut est spécifiée en définissant le membre QueueId sur NDIS_DEFAULT_RECEIVE_QUEUE_ID.
- Si la carte réseau prend en charge l’interface VMQ, elle doit transférer le paquet à la file d’attente de réception spécifiée par le membre QueueId .
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_RECEIVE_FILTER_FIELD_PARAMETERSCommentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour