Partager via


Résoudre les échecs de plug-in WLAN SimpleIO enregistrés par les tests Device Fundamentals

Les tests de base de l’appareil dans le Kit Windows Hardware Lab (Windows HLK) et le Kit de pilotes Windows (WDK) utilisent les plug-insWindows Device Testing Framework (WDTF)SimpleIO pour tester les E/S spécifiques de l’appareil lorsqu’elles s’exécutent. S’il existe un plug-in WDTF pour le type d’appareil testé, les tests utilisent l’interface IWDTFSimpleIOStressAction2 pour tester les E/S sur l’appareil.

Cet article contient des informations qui peuvent vous aider à résoudre les défaillances enregistrées par le plug-in WDTF WLAN SimpleIO lorsqu’il est utilisé pour tester les E/S sur les cartes réseau sans fil pendant les tests d’appareil et de système dans WDK et Windows HLK.

Configuration requise

Le plug-in WLAN SimpleIO nécessite un réseau sans fil WPA2-PSK de base qui utilise AES auquel il peut se connecter lorsqu’il s’exécute. Le SSID et le mot de passe du réseau sans fil doivent être passés en tant que paramètres aux tests qui les nécessitent. Ces paramètres sont nommés comme suit dans les tests qui les nécessitent : Wpa2PskAesSsid et Wpa2PskPassword. Les valeurs par défaut des deux paramètres sont kitstestssid et password, respectivement.

Vue d’ensemble de la couverture des tests

Le plug-in WLAN SimpleIO effectue les tests suivants sur l’adaptateur sans fil en cours de test :

  1. Recherche l’interface Wlan en cours de test en appelant la fonction WlanEnumInterfaces.

  2. Supprime le profil de test nommé WDTFWlanTestProfile (s’il existe) en appelant la fonction WlanGetProfile() et la fonction WlanDeleteProfile().

  3. Crée un profil de test nommé WDTFWlanTestProfile en appelant la fonction WlanSetProfile() et en utilisant un profil XML. Le profil utilise le SSID et le mot de passe du réseau sans fil comme paramètres d’entrée pour le test.

  4. Se connecte au profil nouvellement créé en appelant la fonction WlanConnect(). Attendez-vous à recevoir une notification de connexion complète en 30 secondes.

  5. Recherche la connectivité en appelant la méthode INetworkListManager::GetConnectivity de l’API Network List Manager et recherche NLM_CONNECTIVITY énumération NLM_CONNECTIVITY_IPV4_INTERNET ou NLM_CONNECTIVITY_IPV4_LOCALNETWORK indicateurs à définir. Le plug-in appelle la fonction GetConnectivity() plusieurs fois (si nécessaire) en attendant une connexion, avant d’expirer et de signaler une erreur.

  6. Appelle la fonction GetAdaptersInfo() pour déterminer l’adresse de passerelle qui correspond à l’adaptateur de test.

  7. Ouvre un handle ICMP en appelant la fonction IcmpCreateFile() et appelle une fonction interne dans une boucle pendant plusieurs minutes qui effectue un test ping sur l’adresse de passerelle IPv4 (à l’aide de la fonction IcmpSendEcho() avec un délai d’expiration d’une seconde) 500 fois chaque fois qu’elle est appelée, et enregistre un message d’erreur si, à un moment donné, le taux d’échec est >de 10 %.

  8. Se déconnecte du réseau en appelant la fonction WlanDisconnect().

  9. Supprime le profil de test en appelant la fonction WlanGetProfile() et la fonction WlanDeleteProfile().

Instructions pour la résolution des problèmes

Identifier les échecs enregistrés par le plug-in WLAN SimpleIO

Les messages d’erreur enregistrés par le plug-in contiennent le texte « WirelessPlugin: ». Le texte qui suit immédiatement « WirelessPlugin : » fournit plus de contexte sur les erreurs. Par exemple :

WDTF_SIMPLE_IO            : ERROR :  - Open(802.11n USB Wireless LAN Card USB\VID_XXXX&PID_XXXX\5&35DEE9D9&0&5 ) Failed : WirelessPlugin: ConnectToTestProfile() - Failed to connect to test profile; Reason string: "The specific network is not available." HRESULT=0x80004005

Conseils généraux de résolution des problèmes

Nous vous recommandons de suivre les étapes de résolution des problèmes dans l’ordre indiqué :

  1. Consultez la documentation de test pour comprendre le scénario de test.

  2. Consultez vue d’ensemble de la couverture des tests pour comprendre comment le plug-in teste un appareil ou un pilote.

  3. Examinez attentivement les entrées de journal qui précèdent le message d’erreur et le message d’erreur lui-même pour comprendre le scénario de test et la raison de l’échec.

  4. Résoudre les problèmes d’installation du routeur. Assurez-vous que vous pouvez vous connecter manuellement au routeur, que vous pouvez effectuer un test ping sur l’adresse de la passerelle après avoir effectué la connexion et que le routeur est à portée de l’ordinateur de test. Si le routeur échoue à l’un de ces tests, réinitialisez le routeur.

  5. Activez le suivi dans le pilote de test et passez en revue les traces du pilote à partir de l’heure à laquelle le test a enregistré les erreurs.

  6. Activez le suivi du système d’exploitation WLAN et passez en revue les traces journalisées à partir de l’heure où le journalise l’erreur ou les erreurs. Pour plus d’informations sur le suivi du système d’exploitation WLAN, consultez Outils de résolution des problèmes à l’aide du suivi réseau dans Windows 7.

Dans certains cas, il est utile d’exécuter manuellement le test défaillant à partir d’une ligne de commande (sans utiliser Windows HLK ou WDK), puis d’examiner les traces WPP du plug-in. Consultez Comment exécuter des tests à partir de la ligne de commande et Afficher les traces de plug-in WLAN.

Comment exécuter des tests à partir de la ligne de commande

Nous vous recommandons d’utiliser un client Windows HLK pour exécuter des tests manuellement, car wdTF est installé sur les clients Windows HLK. Suivez les étapes décrites dans Comment exécuter les tests de base de l’appareil Windows HLK sur la ligne de commande. Activez Driver Verifier sur Ndis.sys et le pilote de test Wi-Fi.

Afficher les traces de plug-in WLAN

Le plug-in WLAN utilise le suivi WPP pour suivre les informations et les erreurs qui peuvent vous être utiles lorsque vous examinez les échecs enregistrés par le plug-in WLAN. Consultez Collecter et afficher les traces WDTF (Windows Device Testing Framework) pour obtenir des instructions sur la collecte et l’affichage des traces WDTF.

Notes

WDTF_Action_SimpleIO_Wireless est le nom du fournisseur que vous pouvez utiliser pour le filtrage.

Exemple de sortie de trace

                               -->this(047BB318):?FinalConstruct@CWirelessImpl@@QEAAJXZ(void)
                               <--this(047BB318):?FinalConstruct@CWirelessImpl@@QEAAJXZ(): S_OK
                               o->this(047BB318):?SetTarget@CWirelessImpl@@UEAAJPEAUITarget@@UtagVARIANT@@@Z(pMainTarget = 0476BBAC, MoreTargets = 8)
                                    INFO:Calling WlanOpenHandle() function
                                    INFO:Calling WlanEnumInterfaces() function to find wlan interface under test: N300 USB Network Adapter" ({4138C082-E821-433C-ABB8-6FF864BF80B5})"
                                    INFO:Found 1 wlan interfaces in total
                                    INFO:Processing wlan interface: N300 USB Network Adapter""
                                    INFO:Found the wlan interface under test!
                                    INFO:Interface information: Interface Guid: {4138C082-E821-433C-ABB8-6FF864BF80B5}; Interface State: disconnected""
                               o<-this(047BB318):?SetTarget@CWirelessImpl@@UEAAJPEAUITarget@@UtagVARIANT@@@Z(): S_OK
           o->this(047BB318):?Open@CWirelessImpl@@UEAAJXZ(void)
                INFO:Calling WlanOpenHandle() function
                -->this(047BB318):?FindAndDeleteTestProfile@CWirelessImpl@@AEAAJXZ(void)
                     INFO:Test profile WDTFWlanTestProfile" doesn't exist"
                o<-this(047BB318):?FindAndDeleteTestProfile@CWirelessImpl@@AEAAJXZ(): S_OK
                -->this(047BB318):?CreateTestProfile@CWirelessImpl@@AEAAJXZ(void)
                     INFO:Calling WlanSetProfile() with a profile XML to create a profile with name: WDTFWlanTestProfile"
                o<-this(047BB318):?CreateTestProfile@CWirelessImpl@@AEAAJXZ(): S_OK
                -->this(047BB318):?ConnectToTestProfile@CWirelessImpl@@AEAAJXZ(void)
                     INFO:Calling WlanRegisterNotification() to get notified of connect complete event
                     INFO:Calling WlanConnect() to connect to test profile with name: WDTFWlanTestProfile""
                     INFO:Waiting to receive connect complete notification
                     INFO:Received connect complete notification: 0
                     INFO:Calling WlanRegisterNotification() to unregister from notifications
                o<-this(047BB318):?ConnectToTestProfile@CWirelessImpl@@AEAAJXZ(): S_OK
                INFO:Calling an internal helper function to check for the connectivity state of the network connection
                -->this(047BB318):?CheckForConnectivity@CWirelessImpl@@AEAAJPEA_N@Z(void)
                     INFO:Creating an instance of the NLM COM object
                     INFO:Calling NLM GetNetworkConnections() to get a list of network connections
                     INFO:Iterating through the network connections found looking for the connection corresponding to the test adapter ({4138C082-E821-433C-ABB8-6FF864BF80B5})
                     INFO:Calling NLM GetAdapterId() on a network connection found
                     INFO:Calling NLM GetAdapterId() on a network connection found
                     INFO:Found a network connection using the test adapter!
                     INFO:Calling NLM GetConectivity() on a network connection using the test adapter
                     INFO:NLM GetConectivity() reported the following connectivity state: 66
                     INFO:NLM GetConectivity() reported IPv4 connectivity!
                o<-this(047BB318):?CheckForConnectivity@CWirelessImpl@@AEAAJPEA_N@Z(): S_OK
                -->this(047BB318):?RefreshIPInfo@CWirelessImpl@@AEAAJXZ(void)
                     INFO:Calling GetAdaptersInfo() function to find IP address info for adapter {4138C082-E821-433C-ABB8-6FF864BF80B5}""
                     INFO:Found the adapter we are looking for!
                     INFO:Adapter Info: Index: 4, IPv4 Address: 192.168.1.147, Gateway Address: 192.168.1.1
                o<-this(047BB318):?RefreshIPInfo@CWirelessImpl@@AEAAJXZ(): S_OK
                INFO:Calling IcmpCreateFile() function
                INFO:Pinging gateway (192.168.1.1) 10 times
                -->this(047BB318):?TestPingGateway@CWirelessImpl@@AEAAJHH@Z(numPings: 10)
                     INFO:Calling IcmpSendEcho() to ping gateway (192.168.1.1) 10 times with a random input buffer of size 255 and a timeout value of 1000 milliseconds
                o<-this(047BB318):?TestPingGateway@CWirelessImpl@@AEAAJHH@Z(): S_OK
           o<-this(047BB318):?Open@CWirelessImpl@@UEAAJXZ(): S_OK
           o->this(047BB318):?RunIO@CWirelessImpl@@UEAAJXZ(void)
                -->this(047BB318):?TestPingGateway@CWirelessImpl@@AEAAJHH@Z(numPings: 500)
                     INFO:Calling IcmpSendEcho() to ping gateway (192.168.1.1) 500 times with a random input buffer of size 255 and a timeout value of 1000 milliseconds
                o<-this(047BB318):?TestPingGateway@CWirelessImpl@@AEAAJHH@Z(): S_OK
           o<-this(047BB318):?RunIO@CWirelessImpl@@UEAAJXZ(): S_OK
           o->this(047BB318):?RunIO@CWirelessImpl@@UEAAJXZ(void)
                -->this(047BB318):?TestPingGateway@CWirelessImpl@@AEAAJHH@Z(numPings: 500)
                     INFO:Calling IcmpSendEcho() to ping gateway (192.168.1.1) 500 times with a random input buffer of size 255 and a timeout value of 1000 milliseconds
                o<-this(047BB318):?TestPingGateway@CWirelessImpl@@AEAAJHH@Z(): S_OK
           o<-this(047BB318):?RunIO@CWirelessImpl@@UEAAJXZ(): S_OK
...
...
...
           o->this(047BB318):?Close@CWirelessImpl@@UEAAJXZ(void)
                -->this(047BB318):?DisconnectFromTestProfile@CWirelessImpl@@AEAAJXZ(void)
                     INFO:Calling WlanDisconnect() to disconnect
                o<-this(047BB318):?DisconnectFromTestProfile@CWirelessImpl@@AEAAJXZ(): S_OK
                -->this(047BB318):?FindAndDeleteTestProfile@CWirelessImpl@@AEAAJXZ(void)
                     INFO:Calling WlanDeleteProfile() to delete the previously created test profile with name WDTFWlanTestProfile""
                o<-this(047BB318):?FindAndDeleteTestProfile@CWirelessImpl@@AEAAJXZ(): S_OK
           o<-this(047BB318):?Close@CWirelessImpl@@UEAAJXZ(): S_OK

Résolution des problèmes de test de fiabilité des principes de base de l’appareil à l’aide de Windows HLK

Résolution des problèmes de Windows HLK

Prise en charge de Windows HLK