Compartir a través de


Solución de problemas de errores del complemento WLAN SimpleIO registrados por pruebas de device Fundamentals

Las pruebas de aspectos básicos del dispositivo en el Kit de laboratorio de hardware de Windows (Windows HLK) y el Kit de controladores de Windows (WDK) usan complementos de Windows Device Testing Framework (WDTF)SimpleIO para probar la E/S específica del dispositivo cuando se ejecutan. Si existe un complemento WDTF para el tipo de dispositivo que se está probando, las pruebas usan la interfaz IWDTFSimpleIOStressAction2 para probar la E/S en el dispositivo.

Este artículo contiene información que puede ayudar a solucionar errores registrados por el complemento WDTF WLAN SimpleIO cuando se usa para probar la E/S en adaptadores de red inalámbrica durante las pruebas del dispositivo y del sistema en WDK y Windows HLK.

Requisitos de configuración

El complemento WLAN SimpleIO requiere una red inalámbrica WPA2-PSK básica que usa AES a la que puede conectarse cuando se ejecuta. El SSID y la contraseña de la red inalámbrica deben pasarse como parámetros a las pruebas que las requieren. Estos parámetros se denominan de la siguiente manera en las pruebas que los requieren: Wpa2PskAesSsid y Wpa2PskPassword. Los valores predeterminados de los dos parámetros son kitstestssid y password, respectivamente.

Introducción a la cobertura de pruebas

El complemento WLAN SimpleIO realiza las siguientes pruebas en el adaptador inalámbrico bajo prueba:

  1. Encuentra la interfaz Wlan que está bajo prueba llamando a la función WlanEnumInterfaces.

  2. Elimina el perfil de prueba denominado WDTFWlanTestProfile (si existe) llamando a la función WlanGetProfile() y a la función WlanDeleteProfile().

  3. Crea un nuevo perfil de prueba denominado WDTFWlanTestProfile llamando a la función WlanSetProfile() y mediante un XML de perfil. El perfil usa el SSID y la contraseña de la red inalámbrica como parámetros de entrada para la prueba.

  4. Se conecta al perfil recién creado llamando a la función WlanConnect(). Espere recibir una notificación de conexión completa en 30 segundos.

  5. Comprueba la conectividad mediante una llamada al método INetworkListManager::GetConnectivity de la API de Network List Manager y busca NLM_CONNECTIVITY enumeración NLM_CONNECTIVITY_IPV4_INTERNET o marcas de NLM_CONNECTIVITY_IPV4_LOCALNETWORK que se van a establecer. El complemento llama a la función GetConnectivity() varias veces (si es necesario) a medida que espera una conexión, antes de que se agote el tiempo de espera y informe de un error.

  6. Llama a la función GetAdaptersInfo() para determinar la dirección de puerta de enlace que corresponde al adaptador de prueba.

  7. Abre un identificador ICMP llamando a la función IcmpCreateFile() y llama a una función interna en un bucle durante varios minutos que hace ping a la dirección de puerta de enlace IPv4 (mediante la función IcmpSendEcho() con un tiempo de espera de un segundo) 500 veces cada vez que se llama, y registra un mensaje de error si en cualquier momento se llama, la tasa de errores es >del 10 %.

  8. Se desconecta de la red llamando a la función WlanDisconnect().

  9. Elimina el perfil de prueba llamando a la función WlanGetProfile() y a la función WlanDeleteProfile().

Guía de solución de problemas

Identificar errores registrados por el complemento WLAN SimpleIO

Los mensajes de error registrados por el complemento contendrán el texto "WirelessPlugin:". El texto que sigue inmediatamente a "WirelessPlugin:" proporciona más contexto sobre los errores. Por ejemplo:

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

Guía general de solución de problemas

Se recomienda seguir los pasos de solución de problemas en el orden indicado:

  1. Revise la documentación de prueba para comprender el escenario de prueba.

  2. Revise Información general sobre la cobertura de pruebas para comprender cómo el complemento prueba un dispositivo o controlador.

  3. Revise cuidadosamente las entradas de registro que preceden al mensaje de error y el propio mensaje de error para comprender el escenario de prueba y el motivo del error.

  4. Solucione los problemas de configuración del enrutador. Asegúrese de que puede conectarse manualmente al enrutador, que puede hacer ping a la dirección de la puerta de enlace después de realizar la conexión y que el enrutador está en el intervalo del equipo de prueba. Si el enrutador produce un error en cualquiera de estas pruebas, restablezca el enrutador.

  5. Habilite el seguimiento en el controlador de prueba y revise los seguimientos del controlador desde el momento en que la prueba registró los errores.

  6. Habilite el seguimiento del sistema operativo WLAN y revise los seguimientos registrados desde el momento en que se registraron los errores. Para obtener más información sobre el seguimiento del sistema operativo WLAN, consulta Herramientas para solucionar problemas mediante el seguimiento de red en Windows 7.

En algunos casos, resulta útil ejecutar la prueba con errores manualmente desde una línea de comandos (sin usar Windows HLK o WDK) y, a continuación, revisar los seguimientos de WPP del complemento. Consulta Cómo ejecutar pruebas desde la línea de comandos y Ver seguimientos del complemento WLAN.

Ejecución de pruebas desde la línea de comandos

Se recomienda usar un cliente HLK de Windows para ejecutar pruebas manualmente porque los clientes de Windows HLK tienen WDTF instalados en ellos. Siga los pasos descritos en Cómo ejecutar las pruebas fundamentales del dispositivo HLK de Windows en la línea de comandos. Habilite el Comprobador de controladores en Ndis.sys y el controlador Wi-Fi de prueba.

Ver seguimientos del complemento WLAN

El complemento WLAN usa el seguimiento de WPP para realizar un seguimiento de la información y los errores que puede encontrar útiles al investigar los errores registrados por el complemento WLAN. Consulta Recopilar y ver seguimientos del marco de pruebas de dispositivos Windows (WDTF) para obtener instrucciones sobre cómo recopilar y ver seguimientos WDTF.

Nota

WDTF_Action_SimpleIO_Wireless es el nombre del proveedor que puede usar para el filtrado.

Salida de seguimiento de ejemplo

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

Solución de problemas de pruebas de confiabilidad de los aspectos básicos del dispositivo mediante HLK de Windows

Solución de problemas de HLK de Windows

Soporte técnico de Windows HLK