Partager via


Mots clés d’énumération

NDIS 6.0 et versions ultérieures de NDIS fournissent des mots clés d’énumération standardisés pour les pilotes miniports des périphériques réseau. Les mots clés d’énumération sont associés à des valeurs qui apparaissent sous forme de liste dans un menu.

L’exemple suivant montre une définition de fichier INF pour une mot clé d’énumération.

HKR, Ndi\params\<SubkeyName>, ParamDesc, 0, "%<SubkeyName>%"
HKR, Ndi\params\<SubkeyName>, Type, 0, "enum"
HKR, Ndi\params\<SubkeyName>, Default, 0, "3"
HKR, Ndi\params\<SubkeyName>, Optional, 0, "0"
HKR, Ndi\params\<SubkeyName>\enum, "0", 0, "%Disabled%"
HKR, Ndi\params\<SubkeyName>\enum, "1", 0, "%Tx Enabled%"
HKR, Ndi\params\<SubkeyName>\enum, "2", 0, "%Rx Enabled%"
HKR, Ndi\params\<SubkeyName>\enum, "3", 0, "%Rx & Tx Enabled%"

Les mots clés d’énumération généraux sont les suivants :

*SpeedDuplex
Paramètres de vitesse et duplex pris en charge par un appareil. Le fichier INF de l’appareil doit répertorier uniquement les paramètres pris en charge par l’appareil associé. Autrement dit, pour un appareil Ethernet 10/100 qui ne peut prendre en charge que le mode duplex intégral, les paramètres pour les vitesses Gigabit ou supérieures ou le demi-duplex ne doivent pas être répertoriés dans le fichier INF associé.

Les valeurs de vitesse qui ne sont pas définies spécifiquement avec les valeurs énumérées de 0 à 10 peuvent être définies comme un nombre qui est la valeur directement en Mbits/s. Les valeurs directes doivent être d’au moins 1 000 Mbits/s (1 Gbit/s) et au-dessus. Voici quelques exemples pour spécifier directement la vitesse :

Valeur SpeedDuplex Vitesse résultante
1 000 1 Gbit/s
10 000 10 Gbits/s
25 000 25 Gbits
50 000 50 Gbit/s
100 000 100 Gbits/s

*FlowControl
Possibilité pour l’appareil d’activer ou de désactiver le contrôle de flux dans le chemin d’envoi ou de réception.

Note Les appareils Ethernet prennent aujourd’hui en charge le contrôle de flux, et le Windows 8 les pilotes intégrés pour le réseau lan ont le contrôle de flux activé par défaut. Lorsqu’un débogueur de noyau s’attache à l’une de ces cartes LAN, la carte réseau commence à envoyer (push) des images de pause de contrôle de flux dans le réseau. La plupart des commutateurs réseau réagissent en mettant temporairement hors service le réseau pour tous les autres ordinateurs connectés au même hub. Il s’agit d’un scénario de développement courant, et l’expérience de l’utilisateur final est à la fois indésirable et difficile à diagnostiquer.

Note Les valeurs par défaut du client et du serveur ne sont pas identiques ; reportez-vous au tableau des valeurs par défaut ci-dessous.

Pour cette raison, dans Windows 8 et versions ultérieures, NDIS désactive automatiquement le contrôle de flux lorsque le débogage est activé sur l’ordinateur (par exemple, en tapant bcdedit /set debug sur sur la ligne de commande). Lorsque le débogage du noyau est activé et que le miniport appelle NdisReadConfiguration et passe « *FlowControl » pour le paramètre Keyword , NDIS remplace la valeur configurée et retourne zéro.

Si vous devez activer le contrôle de flux lors du débogage, NDIS fournit la valeur de Registre AllowFlowControlUnderDebugger pour vous permettre de le faire. La valeur de Registre AllowFlowControlUnderDebugger empêche NDIS de désactiver le contrôle de flux et permet aux cartes réseau de conserver leur comportement configuré. Il se trouve sous la clé de Registre suivante :

HKEY_LOCAL_MACHINE\Système\Currentcontrolset\Services\NDIS\Paramètres

Définissez cette valeur de Registre sur 0x00000001.

S’il n’existe pas, vous pouvez créer une valeur nommée AllowFlowControlUnderDebugger et le type REG_DWORD et la définir sur 0x00000001.

*PriorityVLANTag
Valeur qui indique si l’appareil a activé ou désactivé la possibilité d’insérer les balises 802.1Q pour la priorité des paquets et les réseaux locaux virtuels (VLAN). Cette mot clé n’indique pas si l’appareil a activé ou désactivé les étiquettes de priorité de paquet ou de réseau local virtuel. Au lieu de cela, il décrit les éléments suivants :

  • Si l’appareil insère des balises 802.1Q pendant une opération d’envoi
  • Si les informations de balise 802.1Q sont disponibles dans le NET_BUFFER_LIST informations hors bande (OOB)
  • Si l’appareil copie les balises 802.1Q vers OOB pendant les opérations de réception

Le pilote miniport doit supprimer l’en-tête 802.1Q de tous les paquets de réception, quel que soit le paramètre *PriorityVLANTag . Si l’en-tête 802.1Q est laissé dans un paquet, d’autres pilotes peuvent ne pas être en mesure d’analyser le paquet correctement.

Si l’indicateur Rx est activé sur le chemin de réception, le pilote miniport doit copier l’en-tête 802.1Q supprimé dans OOB.

Sinon, si l’indicateur Rx est désactivé, le pilote miniport ne doit pas copier l’en-tête 802.1Q supprimé dans OOB.

Si l’indicateur Tx est activé sur le chemin de transmission, le pilote miniport doit effectuer les opérations suivantes :

  • Insérez l’en-tête 802.1Q dans chaque paquet sortant et remplissez-le avec les données d’OOB (si des données non nulles existent dans OOB).
  • Publier les MacOptions appropriés dans NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES (NDIS_MAC_OPTION_8021P_PRIORITY et NDIS_MAC_OPTION_8021Q_VLAN).

Sinon, si l’indicateur Tx est désactivé, alors :

  • Le filtre miniport ne doit pas respecter les informations 802.1Q dans OOB (et par conséquent, n’insérer aucune balise).
  • Le filtre miniport ne doit pas publier les MacOptions appropriés dans NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES.

Note Si le pilote miniport prend en charge la qualité de service (QoS) NDIS, il doit également lire la valeur *QOS mot clé. En fonction de la valeur *QOS mot clé, les valeurs *PriorityVLANTag mot clé sont interprétées différemment. Pour plus d’informations, consultez Mots clés INF standardisés pour la qualité de service NDIS.

*InterruptModeration
Valeur qui indique si l’appareil a activé ou désactivé la modération d’interruption. Les algorithmes de modération des interruptions dépendent de l’appareil. Le fabricant de l’appareil peut utiliser des mots clés non standardisés pour prendre en charge les paramètres algorithmiques. Pour plus d’informations sur la modération des interruptions, consultez Modération des interruptions.

*RSS
Valeur qui indique si l’appareil a activé ou désactivé la mise à l’échelle côté réception (RSS). Pour plus d’informations sur RSS, consultez Mise à l’échelle côté réception.

*HeaderDataSplit
Valeur qui indique si l’appareil a activé ou désactivé le fractionnement des données d’en-tête. Pour plus d’informations sur le fractionnement des données d’en-tête, consultez Répartition des données d’en-tête.

Les mots clés suivants sont associés aux services de déchargement de connexion :

*TCPConnectionOffloadIPv4

*TCPConnectionOffloadIPv6

Pour plus d’informations sur les mots clés de déchargement de connexion, consultez Utilisation de valeurs de Registre pour activer et désactiver le déchargement de connexion.

Les mots clés suivants sont associés aux services de déchargement de tâche :

*IPChecksumOffloadIPv4

*TCPChecksumOffloadIPv4

*TCPChecksumOffloadIPv6

*UDPChecksumOffloadIPv4

*UDPChecksumOffloadIPv6

*LsoV1IPv4

*LsoV2IPv4

Note Pour les appareils qui prennent en charge le déchargement d’envoi volumineux version 1 (LSOv1) et LSOv2 sur IPv4, seuls les mot clé *LsoV2IPv4 doivent être utilisés dans le fichier INF et les valeurs du Registre. Si, par exemple, le mot clé *LsoV2IPv4 apparaît dans le fichier INF et que le mot clé *LsoV1IPv4 apparaît dans le Registre (ou inversement), le mot clé *LsoV2IPv4 est toujours prioritaire.

*LsoV2IPv6

*IPsecOffloadV1IPv4

*IPsecOffloadV2

*IPsecOffloadV2IPv4

*TCPUDPChecksumOffloadIPv4

*TCPUDPChecksumOffloadIPv6

Pour plus d’informations sur les mots clés de déchargement TCP/IP, consultez Utilisation de valeurs de Registre pour activer et désactiver le déchargement des tâches.

Les colonnes de la table à la fin de cette rubrique décrivent les attributs suivants pour les mots clés d’énumération :

Nom de sous-clé
Nom du mot clé que vous devez spécifier dans le fichier INF et qui apparaît dans le Registre.

ParamDesc
Texte d’affichage associé à SubkeyName.

Valeur
Valeur entière d’énumération associée à chaque option de la liste. Cette valeur est stockée dans NDI\params\SubkeyName\Value.

EnumDesc
Texte d’affichage associé à chaque valeur qui apparaît dans le menu.

Default
Valeur par défaut du menu.

Le tableau suivant répertorie tous les mots clés et décrit les valeurs qu’un pilote doit utiliser pour les attributs précédents. Pour plus d’informations sur un mot clé, recherchez les mot clé dans la documentation WDK.

Nom de sous-clé ParamDesc Valeur EnumDesc
*SpeedDuplex Vitesse & Duplex 0 (Par défaut) Négociation automatique
1 10 Mbits/s demi-duplex
2 Duplex complet de 10 Mbits/s
3 100 Mbits/s demi-duplex
4 Duplex complet de 100 Mbits/s
5 1,0 Gbits/s demi-duplex
6 Duplex complet 1,0 Gbits/s
7 Duplex complet de 10 Gbits/s
8 Duplex complet de 20 Gbits/s
9 Duplex intégral de 40 Gbits/s
10 Duplex complet de 100 Gbits/s
*FlowControl Contrôle de flux 0 (valeur de serveur par défaut) Tx & Rx désactivé
1 Tx activé
2 Rx activé
3 (client par défaut) Rx & Tx activé
4 Négociation automatique
*PriorityVLANTag Priorité des paquets & VLAN 0 Priorité des paquets & VLAN désactivé
1 Priorité de paquet activée
2 Réseau local virtuel activé
3 (par défaut) Priorité des paquets & VLAN activé
*InterruptModeration Modération des interruptions 0 Désactivé
1 (par défaut) activé
*RSS Partage du trafic entrant 0 Désactivé
1 (par défaut) activé
*HeaderDataSplit Fractionnement des données d’en-tête 0 (Par défaut) Désactivé
1 activé
*TCPConnectionOffloadIPv4 Déchargement de connexion TCP (IPv4) 0 Désactivé
1 (par défaut) activé
*TCPConnectionOffloadIPv6 Déchargement de connexion TCP (IPv6) 0 Désactivé
1 (par défaut) activé
*IPChecksumOffloadIPv4 Déchargement de somme de contrôle IPv4 0 Désactivé
1 Tx activé
2 Rx activé
3 (par défaut) Rx & Tx activé
*TCPChecksumOffloadIPv4 Déchargement de somme de contrôle TCP (IPv4) 0 Désactivé
1 Tx activé
2 Rx activé
3 (par défaut) Rx & Tx Activé
*TCPChecksumOffloadIPv6 Déchargement de somme de contrôle TCP (IPv6) 0 Désactivé
1 Tx activé
2 Rx activé
3 (par défaut) Rx & Tx Activé
*UDPChecksumOffloadIPv4 Déchargement de somme de contrôle UDP (IPv4) 0 Désactivé
1 Tx activé
2 Rx activé
3 (par défaut) Rx & Tx Activé
*UDPChecksumOffloadIPv6 Déchargement de somme de contrôle UDP (IPv6) 0 Désactivé
1 Tx activé
2 Rx activé
3 (par défaut) Rx & Tx Activé
*LsoV1IPv4 Déchargement d’envoi volumineux version 1 (IPv4) 0 Désactivé
1 (par défaut) activé
*LsoV2IPv4 Déchargement d’envoi volumineux version 2 (IPv4) 0 Désactivé
1 (par défaut) activé
*LsoV2IPv6 Déchargement d’envoi volumineux version 2 (IPv6) 0 Désactivé
1 (par défaut) activé
*IPsecOffloadV1IPv4 Déchargement IPsec version 1 (IPv4) 0 Désactivé
1 En-tête d’authentification activé
2 ESP activé
3 (par défaut) En-tête d’authentification & ESP activé
*IPsecOffloadV2 Déchargement IPsec 0 Désactivé
1 En-tête d’authentification activé
2 ESP activé
3 (par défaut) En-tête d’authentification & ESP activé
*IPsecOffloadV2IPv4 Déchargement IPsec (IPv4 uniquement) 0 Désactivé
1 En-tête d’authentification activé
2 ESP activé
3 (par défaut) En-tête d’authentification & ESP activé
*TCPUDPChecksumOffloadIPv4 Déchargement de la somme de contrôle TCP/UDP (IPv4) 0 Désactivé
1 Tx activé
2 Rx activé
3 (par défaut) Tx et Rx activés
*TCPUDPChecksumOffloadIPv6 Déchargement de la somme de contrôle TCP/UDP (IPv6) 0 Désactivé
1 Tx activé
2 Rx activé
3 (par défaut) Tx et Rx activés