Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
NDIS 6.0 et versions ultérieures de NDIS fournissent des mots clés d’énumération standardisés pour les pilotes miniport 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 un 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 plus, ou pour le mode semi-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 des valeurs énumérées comprises entre 0 et 10 peuvent être définies comme un nombre qui correspond à la valeur directement en Mbits/s. Les valeurs directes doivent être au moins 1 000 Mbits/s (1 Gbit/s) et ultérieures. Voici quelques exemples pour spécifier directement la vitesse :
| SpeedDuplex value | Resulting speed |
|---|---|
| 1,000 | 1 Gbps |
| 10,000 | 10 Gbps |
| 25,000 | 25 Gbps |
| 50,000 | 50 Gbps |
| 100,000 | 100 Gbps |
*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 les pilotes Windows 8 intégrés pour le réseau local ont activé le contrôle de flux par défaut. Lorsqu’un débogueur de noyau s’attache à l’une de ces cartes réseau local, la carte réseau commence à envoyer les trames de pause de contrôle de flux dans le réseau. La plupart des commutateurs réseau réagissent en supprimant temporairement 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 les mêmes ; 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 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 de mot clé , 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_MACHINESystè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 avec le nom AllowFlowControlUnderDebugger et le type REG_DWORD et le 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). Ce mot clé n’indique pas si l’appareil a activé ou désactivé la priorité de paquet ou les balises VLAN. Au lieu de cela, il décrit les éléments suivants :
- Indique si l’appareil insère des balises 802.1Q pendant une opération d’envoi
- Indique si les informations de balise 802.1Q sont disponibles dans les informations NET_BUFFER_LIST hors bande (OOB)
- Indique si l’appareil copie les balises 802.1Q dans 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 correctement le paquet.
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).
- Annoncer 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 donc ne pas insérer de 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 NDIS (QoS), il doit également lire la valeur du mot clé *QOS . En fonction de la valeur du mot clé *QOS , les valeurs de mot clé *PriorityVLANTag sont interprétées différemment. Pour plus d’informations, consultez Les mots clés INF standardisés pour la qoS NDIS.
*InterruptModeration
Valeur qui décrit si l’appareil est activé ou désactivé la modération des interruptions. 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 de modération des interruptions.
*RSS
Valeur qui indique si la mise à l’échelle côté réception (RSS) est activée ou désactivée sur l’appareil. Pour plus d’informations sur RSS, consultez mise à l’échelle côté réception.
*HeaderDataSplit
Valeur qui décrit si l’appareil est activé ou désactivé pour fractionner les données d’en-tête. Pour plus d’informations sur le fractionnement des données d’en-tête, consultez Header-Data Fractionnement.
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 des 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âches :
*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, seul le mot clé *LsoV2IPv4 doit être utilisé dans le fichier INF et les valeurs de Registre. Si, par exemple, le mot clé *LsoV2IPv4 apparaît dans le fichier INF et le mot clé *LsoV1IPv4 apparaît dans le registre (ou vice versa), 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 des 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 :
SubkeyName
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.
Value
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 le mot clé dans la documentation WDK.
| SubkeyName | ParamDesc | Value | EnumDesc |
|---|---|---|---|
| *SpeedDuplex | Vitesse & Duplex | 0 (Default) | Auto Negotiation |
| 1 | 10 Mbits/s demi-duplex | ||
| 2 | 10 Mb/s Full-Duplex | ||
| 3 | 100 Mbits/s demi-duplex | ||
| 4 | 100 Mb/s en duplex intégral | ||
| 5 | 1,0 Gbit/s Semi-Duplex | ||
| 6 | 1,0 Gbit/s Full Duplex | ||
| 7 | 10 Gbit/s Duplex intégral | ||
| 8 | 20 Gb/s Full Duplex | ||
| 9 | 40 Gbps full duplex | ||
| 10 | Duplex complet de 100 Gbits/s | ||
| *FlowControl | Flow Control | 0 (serveur par défaut) | Tx &Rx Désactivé |
| 1 | Tx Enabled | ||
| 2 | Rx Enabled | ||
| 3 (Valeur par défaut du client) | Rx &Tx activé | ||
| 4 | Auto Negotiation | ||
| *PriorityVLANTag | Priorité des paquets &VLAN | 0 | Priorité des paquets & VLAN désactivé |
| 1 | Priorité des paquets activé | ||
| 2 | VLAN Enabled | ||
| 3 (Default) | Priorité des paquets & VLAN activé | ||
| *InterruptModeration | Interrupt Moderation | 0 | Disabled |
| 1 (Default) | Enabled | ||
| *RSS | Partage du trafic entrant | 0 | Disabled |
| 1 (Default) | Enabled | ||
| *HeaderDataSplit | Fractionnement des données d’en-tête | 0 (Default) | Disabled |
| 1 | Enabled | ||
| *TCPConnectionOffloadIPv4 | Déchargement de connexion TCP (IPv4) | 0 | Disabled |
| 1 (Default) | Enabled | ||
| *TCPConnectionOffloadIPv6 | Déchargement de connexion TCP (IPv6) | 0 | Disabled |
| 1 (Default) | Enabled | ||
| *IPChecksumOffloadIPv4 | Déchargement de somme de contrôle IPv4 | 0 | Disabled |
| 1 | Tx Enabled | ||
| 2 | Rx Enabled | ||
| 3 (Default) | Rx &Tx activé | ||
| *TCPChecksumOffloadIPv4 | Déchargement de somme de contrôle TCP (IPv4) | 0 | Disabled |
| 1 | Tx Enabled | ||
| 2 | Rx Enabled | ||
| 3 (Default) | Rx &Tx activé | ||
| *TCPChecksumOffloadIPv6 | Déchargement de somme de contrôle TCP (IPv6) | 0 | Disabled |
| 1 | Tx Enabled | ||
| 2 | Rx Enabled | ||
| 3 (Default) | Rx &Tx activé | ||
| *UDPChecksumOffloadIPv4 | Déchargement de somme de contrôle UDP (IPv4) | 0 | Disabled |
| 1 | Tx Enabled | ||
| 2 | Rx Enabled | ||
| 3 (Default) | Rx &Tx activé | ||
| *UDPChecksumOffloadIPv6 | Déchargement de somme de contrôle UDP (IPv6) | 0 | Disabled |
| 1 | Tx Enabled | ||
| 2 | Rx Enabled | ||
| 3 (Default) | Rx &Tx activé | ||
| *LsoV1IPv4 | Chargement d’envoi volumineux version 1 (IPv4) | 0 | Disabled |
| 1 (Default) | Enabled | ||
| *LsoV2IPv4 | Chargement d’envoi volumineux version 2 (IPv4) | 0 | Disabled |
| 1 (Default) | Enabled | ||
| *LsoV2IPv6 | Chargement d’envoi volumineux version 2 (IPv6) | 0 | Disabled |
| 1 (Default) | Enabled | ||
| *IPsecOffloadV1IPv4 | Déchargement IPsec version 1 (IPv4) | 0 | Disabled |
| 1 | En-tête d’authentification activé | ||
| 2 | ESP Enabled | ||
| 3 (Default) | En-tête d’authentification &ESP activé | ||
| *IPsecOffloadV2 | IPsec Offload | 0 | Disabled |
| 1 | En-tête d’authentification activé | ||
| 2 | ESP Enabled | ||
| 3 (Default) | En-tête d’authentification &ESP activé | ||
| *IPsecOffloadV2IPv4 | Déchargement IPsec (IPv4 uniquement) | 0 | Disabled |
| 1 | En-tête d’authentification activé | ||
| 2 | ESP Enabled | ||
| 3 (Default) | En-tête d’authentification &ESP activé | ||
| *TCPUDPChecksumOffloadIPv4 | Déchargement de la somme de contrôle TCP/UDP (IPv4) | 0 | Disabled |
| 1 | Tx Enabled | ||
| 2 | Rx Enabled | ||
| 3 (Default) | Tx et Rx activés | ||
| *TCPUDPChecksumOffloadIPv6 | Déchargement de somme de contrôle TCP/UDP (IPv6) | 0 | Disabled |
| 1 | Tx Enabled | ||
| 2 | Rx Enabled | ||
| 3 (Default) | Tx et Rx activés |