Partager via


Détermination des fonctionnalités VMQ d’une carte réseau

NDIS fournit l’interface permettant de déterminer les fonctionnalités VMQ d’une carte réseau, telles que :

  • Fonctionnalités de filtrage générique d’une carte réseau.

  • Fonctionnalités de file d’attente de machines virtuelles prises en charge.

  • Prise en charge de lookahead pour permettre le fractionnement de la mémoire des données réseau en deux mémoires tampons distinctes.

    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 fournissent les informations suivantes à NDIS lors de l’initialisation de la carte réseau :

  • Fonctionnalités matérielles VMQ que la carte réseau peut prendre en charge.

  • Fonctionnalités VMQ actuellement activées.

  • Fonctionnalités de filtrage de réception globales activées ou désactivées sur une carte réseau.

Les pilotes et les applications trop étendus peuvent utiliser les demandes de requête OID suivantes pour obtenir les fonctionnalités de carte réseau.

OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES

OID_RECEIVE_FILTER_CURRENT_CAPABILITIES

OID_RECEIVE_FILTER_GLOBAL_PARAMETERS

NDIS gère ces requêtes OID pour les pilotes miniport. Par conséquent, la requête n’est pas demandée pour les pilotes miniport. NDIS signale les fonctionnalités VMQ de réception actuellement activées d’une carte réseau lors de l’initialisation. Par conséquent, les pilotes qui se superposent n’ont pas besoin d’interroger ces OID.

La structure NDIS_RECEIVE_FILTER_CAPABILITIES spécifie les fonctionnalités de filtrage d’une carte réseau. Cette structure est utilisée de la manière suivante :

La structure NDIS_RECEIVE_FILTER_CAPABILITIES comprend les informations suivantes :

EnabledFilterTypes
Types des filtres de réception pris en charge. L’indicateur NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED spécifie que les filtres de file d’attente de machines virtuelles (VMQ) sont activés.

EnabledQueueTypes
Types de files d’attente de réception prises en charge. L’indicateur NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED spécifie que les files d’attente de machines virtuelles sont activées.

NumQueues
Nombre de files d’attente de réception que la carte réseau prend en charge. Pour prendre en charge VMQ, ce nombre doit être égal ou inférieur au nombre d’adresses MAC en monodiffusion prises en charge par la carte réseau. Ce nombre ne doit pas inclure la file d’attente par défaut.

Note Le nombre d’adresses MAC monodiffusion ou de files d’attente de machines virtuelles prises en charge par une carte réseau n’inclut pas l’adresse MAC de la carte réseau associée.

SupportedQueueProperties
Propriétés de file d’attente prises en charge par la carte réseau. L’indicateur NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED spécifie que la carte réseau fournit la configuration minimale requise pour prendre en charge le filtrage VMQ. Une carte réseau compatible VMQ doit fournir une entrée de table MSI-X pour chaque file d’attente de réception. Par conséquent, un pilote miniport VMQ doit définir l’indicateur NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED.

SupportedFilterTests
Opérations de test de filtre qu’un pilote miniport prend en charge. Par exemple, 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. Un pilote de miniport VMQ doit définir l’indicateur NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED.

SupportedHeaders
Types d’en-têtes de paquets réseau qu’un pilote miniport peut inspecter. Par exemple, la carte réseau peut inspecter l’en-tête MAC d’un paquet réseau. L’en-tête MAC inclut le type de paquet, les adresses MAC de destination et source, l’identificateur de réseau local virtuel et les champs de balise de priorité. Un pilote de miniport VMQ doit définir l’indicateur NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED.

SupportedMacHeaderFields
Types de champs d’en-tête MAC qu’un pilote miniport peut inspecter. Un pilote de miniport VMQ doit définir l’indicateur NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED.

MaxMacHeaderFilters
Nombre maximal de filtres d’en-tête MAC pris en charge par le pilote miniport. Il doit y avoir au moins autant de filtres d’en-tête qu’il y a de files d’attente de machines virtuelles.

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 segments 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 NDIS 6.30 ou versions ultérieures doivent définir ce membre sur zéro.

MaxLookaheadSplitSize
Taille maximale, en octets, prise en charge par la carte réseau pour les segments de paquets de tête de recherche.

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 NDIS 6.30 ou versions ultérieures doivent définir ce membre sur zéro.

Après un retour réussi à partir de la requête OID OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES , le membre InformationBuffer de la structure NDIS_OID_REQUEST contient un pointeur vers une structure NDIS_RECEIVE_FILTER_CAPABILITIES. Ces fonctionnalités peuvent inclure des fonctionnalités matérielles VMQ qui sont actuellement désactivées par les paramètres de fichier INF ou via la page Propriétés avancées . Pour plus d’informations sur les paramètres des fichiers INF VMQ, consultez Entrées INF standard VMQ.

Les pilotes miniport NDIS fournissent les fonctionnalités matérielles de filtrage de réception lors de l’initialisation dans le membre HardwareReceiveFilterCapabilities de la structure NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .

Après un retour réussi à partir de la requête OID OID_RECEIVE_FILTER_CURRENT_CAPABILITIES , le membre InformationBuffer de la structure NDIS_OID_REQUEST contient un pointeur vers une structure NDIS_RECEIVE_FILTER_CAPABILITIES . Ces fonctionnalités incluent les fonctionnalités VMQ actuellement activées.

Les pilotes miniport NDIS fournissent les fonctionnalités de filtrage de réception actuellement activées lors de l’initialisation dans le membre CurrentReceiveFilterCapabilities de la structure NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .

NDIS signale les fonctionnalités de filtrage de réception actuellement activées d’une carte réseau sous-jacente sur les pilotes de protocole dans le membre ReceiveFilterCapabilities de la structure NDIS_BIND_PARAMETERS pendant l’opération de liaison.

La structure NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS est utilisée dans l’OID de requête OID_RECEIVE_FILTER_GLOBAL_PARAMETERS pour obtenir les paramètres de filtre de réception globaux actuels.

NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS inclut les informations suivantes :

EnabledFilterTypes
Types de filtres de réception activés. L’indicateur NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED spécifie que les filtres de file d’attente de machines virtuelles (VMQ) sont activés.

EnabledQueueTypes
Types de files d’attente de réception activées. L’indicateur NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED spécifie que les files d’attente de machines virtuelles sont activées.

Après un retour réussi à partir de la requête OID OID_RECEIVE_FILTER_GLOBAL_PARAMETERS , le membre InformationBuffer de la structure NDIS_OID_REQUEST contient un pointeur vers une structure NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS . La structure NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS spécifie les fonctionnalités de filtrage de réception activées ou désactivées sur une carte réseau.

Les pilotes de protocole NDIS utilisent OID_RECEIVE_FILTER_GLOBAL_PARAMETERS pour interroger les paramètres de configuration globale actuels pour le filtrage de réception sur une carte réseau. Par exemple, les pilotes de protocole peuvent utiliser cet OID pour déterminer si les types de filtres de réception ou de files d’attente de réception sont activés ou désactivés.