Condividi tramite


Risolvere gli errori del plug-in SIMPLEIO WLAN registrati dai test dei concetti fondamentali del dispositivo

I test dei concetti fondamentali dei dispositivi in Windows Hardware Lab Kit (Windows HLK) e Windows Drivers Kit (WDK) usano plug-in SimpleIO(Windows Device Testing Framework) per testare l'I/O specifico del dispositivo quando vengono eseguiti. Se esiste un plug-in WDTF per il tipo di dispositivo sottoposto a test, i test usano l'interfaccia IWDTFSimpleIOStresAction2 per testare le I/O nel dispositivo.

Questo articolo contiene informazioni utili per la risoluzione degli errori registrati dal plug-in SIMPLEIO WDTF WLAN quando viene usato per testare I/O su schede di rete wireless durante il test del dispositivo e del sistema in WDK e Windows HLK.

Requisiti di configurazione

Il plug-in WLAN SimpleIO richiede una rete wireless WPA2-PSK di base che utilizza AES a cui può connettersi durante l'esecuzione. L'SSID e la password della rete wireless devono essere passati come parametri ai test che li richiedono. Questi parametri sono denominati come segue nei test che li richiedono: Wpa2PskAesSsid e Wpa2PskPassword. I valori predefiniti dei due parametri sono rispettivamente kitstestssid e password.

Panoramica della copertura dei test

Il plug-in WLAN SimpleIO esegue i test seguenti sulla scheda wireless sottoposta a test:

  1. Trova l'interfaccia Wlan sottoposta a test chiamando la funzione WlanEnumInterfaces.

  2. Elimina il profilo di test denominato WDTFWlanTestProfile (se esistente) chiamando la funzione WlanGetProfile() e la funzione WlanDeleteProfile().

  3. Crea un nuovo profilo di test denominato WDTFWlanTestProfile chiamando la funzione WlanSetProfile() e usando un file XML del profilo. Il profilo usa il SSID e la password della rete wireless come parametri di input per il test.

  4. Si connette al profilo appena creato chiamando la funzione WlanConnect(). Si prevede di ricevere una notifica di connessione completa in 30 secondi.

  5. Verifica la connettività chiamando il metodo INetworkListManager::GetConnectivity dell'API Gestione elenchi di rete e cerca NLM_CONNECTIVITY NLM_CONNECTIVITY_IPV4_INTERNET o NLM_CONNECTIVITY_IPV4_LOCALNETWORK flag di enumerazione da impostare. Il plug-in chiama la funzione GetConnectivity() più volte (se necessario) quando attende una connessione, prima che si verifichi il timeout e segnala un errore.

  6. Chiama la funzione GetAdaptersInfo() per determinare l'indirizzo del gateway corrispondente all'adattatore di test.

  7. Apre un handle ICMP chiamando la funzione IcmpCreateFile() e chiama una funzione interna in un ciclo per diversi minuti che esegue il ping dell'indirizzo del gateway IPv4 (usando la funzione IcmpSendEcho() con timeout di un secondo) 500 volte ogni volta che viene chiamata e registra un messaggio di errore se in qualsiasi momento viene chiamato, la percentuale di errore è >del 10%.

  8. Si disconnette dalla rete chiamando la funzione WlanDisconnect().

  9. Elimina il profilo di test chiamando la funzione WlanGetProfile() e la funzione WlanDeleteProfile().

Guida alla risoluzione dei problemi

Identificare gli errori registrati dal plug-in WLAN SimpleIO

I messaggi di errore registrati dal plug-in conterranno il testo "WirelessPlugin:". Il testo che segue immediatamente "WirelessPlugin:" fornisce più contesto sugli errori. Ad esempio:

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

Linee guida generali per la risoluzione dei problemi

È consigliabile seguire i passaggi per la risoluzione dei problemi nell'ordine elencato:

  1. Esaminare la documentazione di test per comprendere lo scenario di test.

  2. Vedere Panoramica della copertura dei test per comprendere come il plug-in testa un dispositivo o un driver.

  3. Esaminare attentamente le voci di log che precedono il messaggio di errore e il messaggio di errore stesso, per comprendere lo scenario di test e il motivo dell'errore.

  4. Risolvere i problemi di configurazione del router. Assicurarsi di potersi connettere manualmente al router, di effettuare il ping dell'indirizzo del gateway dopo aver effettuato la connessione e che il router sia compreso nell'intervallo nel computer di test. Se il router non supera uno di questi test, reimpostare il router.

  5. Abilitare la traccia nel driver di test e esaminare le tracce del driver dal momento in cui il test ha registrato gli errori.

  6. Abilitare la traccia del sistema operativo WLAN ed esaminare le tracce registrate dall'ora in cui sono stati registrati gli errori. Per altre informazioni sulla traccia del sistema operativo WLAN, vedere Strumenti per la risoluzione dei problemi relativi all'uso della traccia di rete in Windows 7.

In alcuni casi, è utile eseguire manualmente il test con esito negativo da una riga di comando (senza usare Windows HLK o WDK) e quindi esaminare le tracce WPP del plug-in. Vedere Come eseguire test dalla riga di comando e Visualizzare tracce plug-in WLAN.

Come eseguire test dalla riga di comando

È consigliabile usare un client Windows HLK per eseguire i test manualmente perché nei client Windows HLK è installato WDTF. Seguire la procedura descritta in Come eseguire i test fondamentali del dispositivo Windows HLK nella riga di comando. Abilitare Driver Verifier in Ndis.sys e il driver di test Wi-Fi.

Visualizzare le tracce dei plug-in WLAN

Il plug-in WLAN usa la traccia WPP per tracciare informazioni ed errori che potrebbero risultare utili quando si esaminano gli errori registrati dal plug-in WLAN. Vedere Raccogliere e visualizzare tracce WDTF (Windows Device Testing Framework) per istruzioni su come raccogliere e visualizzare le tracce WDTF.

Nota

WDTF_Action_SimpleIO_Wireless è il nome del provider che è possibile usare per filtrare.

Output di traccia di esempio

                               -->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

Risoluzione dei problemi relativi ai test di affidabilità dei concetti fondamentali dei dispositivi tramite Windows HLK

Risoluzione dei problemi di Windows HLK

Supporto di Windows HLK