Compartir a través de


DF: prueba de apertura y cierre aproximadas (confiabilidad)

Esta prueba realiza miles de secuencias de apertura y cierre de creación y emplea varias maneras diferentes de abrir y cerrar instancias del dispositivo o dispositivos especificados: Operaciones abiertas básicas, Operaciones abiertas de dispositivo directo y prueba de esfuerzo Open y Cierre.

Operaciones abiertas básicas

Durante las operaciones abiertas básicas, la prueba Fuzz abre repetidamente (crea) instancias de los dispositivos especificados o los dispositivos exportados por el controlador especificado mediante métodos y opciones diferentes.

La prueba Fuzz siempre realiza las operaciones abiertas básicas. No es necesario seleccionarlos y no puede excluirlos de una sesión de prueba.

La prueba Fuzz realiza todas las operaciones abiertas en modo de usuario llamando a los servicios del sistema (rutinas ZwXxx) adecuadas para el dispositivo. Si una llamada abierta devuelve un identificador al dispositivo, la prueba Fuzz usa el identificador para realizar las otras pruebas de dispositivo seleccionadas para la sesión de prueba.

Hay cinco tipos de operaciones abiertas básicas:

  • Estándar abierto: la prueba de Fuzz abre el dispositivo de forma asincrónica y especifica solo el nombre del dispositivo nativo.

  • Abrir con barra diagonal inversa agregada: la prueba Fuzz emite una llamada abierta para el nombre del dispositivo seguido de una barra diagonal inversa (), como \device\cdrom\, como si la llamada fuera a abrir un directorio raíz dentro del dispositivo.

    Esta operación determina cómo el controlador o el sistema de archivos administra las solicitudes abiertas en su espacio de nombres. En concreto, si el dispositivo no admite solicitudes abiertas en su espacio de nombres, el controlador debe impedir el acceso no autorizado, ya sea con errores en las solicitudes o estableciendo la característica del dispositivo FILE_DEVICE_SECURE_OPEN cuando llama a IoCreateDevice o IoCreateDeviceSecure para crear el objeto de dispositivo.

  • Abrir como canalización con nombre: la prueba Fuzz abre el dispositivo y establece una canalización con nombre en el dispositivo. El parámetro de acceso (ShareAccess) se establece inicialmente en lectura y escritura, pero se ajusta si se produce un error en la solicitud. Si el dispositivo no admite canalizaciones con nombre, debe producir un error en la solicitud.

  • Abrir como un gráfico de correo: la prueba de prueba aproximada abre el dispositivo como un mailslot. Si el dispositivo no admite este tipo de conexión, debe producir un error en la solicitud.

  • Abrir como una conexión de árbol: la prueba Fuzz abre el dispositivo como una conexión de árbol para su uso en el acceso a la red remota. El parámetro de acceso (ShareAccess) se establece inicialmente en lectura y escritura, pero se ajusta si se produce un error en la solicitud. Si el dispositivo no admite este tipo de conexión, debe producir un error en la solicitud.

Los parámetros usados en las llamadas abiertas varían para adaptarse a las características del dispositivo y hacer que las llamadas se realicen correctamente. Por ejemplo, si se produce un error en una operación de apertura básica porque la llamada no cumple los requisitos de seguridad del dispositivo, la prueba Fuzz repite la operación abierta con una solicitud de acceso menor. Por ejemplo, si una operación abierta que solicitó acceso de escritura devuelve un error de infracción de seguridad, la apertura se repite con una solicitud de acceso de lectura.

Operaciones directas de apertura de dispositivos

Durante las operaciones directas de apertura del dispositivo, la prueba Fuzz abre el dispositivo directamente, como un dispositivo, no como un archivo en un sistema de archivos. Las operaciones directas de apertura de dispositivos siempre son sincrónicas. Si la llamada se realiza correctamente, la prueba Fuzz usa el identificador proporcionado para realizar otras pruebas seleccionadas.

Abrir y cerrar prueba

Durante la prueba Open y Close, la prueba Fuzz crea varios subprocesos, cada uno de los cuales realiza miles de secuencias de creación y cierre abierto. Esto prueba la capacidad del conductor para controlar un volumen extraordinario de llamadas simples y anticipadas.

La prueba Abrir y cerrar usa las mismas opciones que se usan en la operación abierta básica y Abrir con pruebas de barra diagonal inversa agregadas y se realizan justo antes de estas pruebas.

Binario de prueba: Devfund_FuzzTest.dll método Test: DoOpenCloseTest

Detalles de las pruebas

   
Especificaciones
  • Device.DevFund.Reliability.BasicReliabilityAndPerformance
  • Device.DevFund.Reliability.BasicSecurity
  • Device.DevFund.DriverFramework.KMDF.Reliability
  • Device.DevFund.DriverFramework.UMDF.Reliability
Plataformas
  • Windows 10, ediciones de cliente (x86)
  • Windows 10, ediciones de cliente (x64)
  • Windows Server 2016 (x64)
  • Windows 10, ediciones de cliente (Arm64)
  • Windows 10, edición móvil (Arm)
  • Windows 10, edición móvil (Arm64)
Versiones admitidas
  • Windows 10
  • Windows 10, versión 1511
  • Windows 10, versión 1607
  • Windows 10, versión 1703
  • Windows 10, versión 1709
  • Windows 10, versión 1803
  • Windows 10, versión 1809
  • Windows 10, versión 1903
  • Siguiente actualización a Windows 10
Tiempo de ejecución esperado (en minutos) 15
Categoría Escenario
Tiempo de espera (en minutos) 180
Requiere reinicio false
Requiere una configuración especial true
Tipo automatic

 

Documentación adicional

Las pruebas de esta área de características pueden tener documentación adicional, incluidos los requisitos previos, la configuración y la información de solución de problemas, que se pueden encontrar en los temas siguientes:

Ejecución de la prueba

Antes de ejecutar la prueba, complete la configuración de la prueba como se describe en requisitos de prueba: Requisitos previos de pruebas de confiabilidad de Device.Fundamentals.

Solución de problemas

Para solucionar problemas genéricos de errores de prueba de HLK, consulte Solución de problemas de errores de prueba de HLK de Windows.

Para obtener información de solución de problemas específica de las pruebas de aspectos básicos del dispositivo en HLK y WDK, consulte la documentación adicional de Device.DevFund.

Más información

Parámetros

Nombre de parámetro Descripción de los parámetros
DQ Una consulta SDEL WDTF que se usa para identificar los dispositivos de destino: https://go.microsoft.com/fwlink/?LinkId=232678
Wpa2PskAesSsid Solo se requiere si DUT o uno de sus dispositivos secundarios es un adaptador WiFi. Proporcione SSID de una red WiFi AES WPA2 que la prueba pueda usar para probar el adaptador WiFi. El valor predeterminado es "kitstestssid".
Wpa2PskPassword Solo se requiere si DUT o uno de sus dispositivos secundarios es un adaptador WiFi. Proporcione la contraseña de la red WiFi WPA2 AES especificada mediante el parámetro Wpa2PskAesSsid. El valor predeterminado es "password".
ChangeBufferProtectionFlags True o False. Cambia las marcas de protección de memoria de los búferes pasados al dispositivo probado. Las marcas de protección de memoria alternan entre ningún acceso, solo lectura y solo lectura con la protección de páginas.
Impersonate True o False. Ejecuta la prueba como un usuario no administrativo.
FillZeroPageWithNull True o False. Asigna la página cero y la rellena con valores NULL. Esta prueba identifica los controladores que no comprueban una referencia de puntero antes de desreferenciar un puntero.
DoPoolCheck True o False. Supervisa el uso del controlador de los grupos de memoria del sistema paginados y no paginados mediante etiquetas de grupo y listas de búsqueda. Esta opción también supervisa los cambios en el número de excepciones controladas que podrían indicar errores en el control de excepciones.
DoSync True o False. También abre identificadores de dispositivo en modo SYNC (FILE_SYNCHRONOUS_IO_ALERT). Las operaciones aleatorias de lectura y escritura se omiten.
TestCycles Número de ciclos de prueba.
DriverVerifierAdditionalDrivers Controladores adicionales que deben tener habilitado el Comprobador de controladores
DriverVerifierExcludedFlags Marcador de posición para las marcas del comprobador de controladores que se pueden excluir manualmente para la ejecución de pruebas
WDKDeviceID Identificador de dispositivo del dispositivo sometido a prueba
QueryHardwareID Identificador de hardware del dispositivo sometido a prueba
WDTFREMOTESYSTEM Solo se requiere si DUT o uno de sus dispositivos secundarios es una NIC cableada que no tiene una dirección de puerta de enlace IPv6. Si se determina que es necesario, proporcione una dirección IPv6 a la que la NIC de prueba pueda hacer ping para probar la E/S de red. Por ejemplo: fe80::78b6:810:9c12:46cd
DriverVerifierCustomizeConfiguration Especifica que esta prueba puede querer actualizar automáticamente la configuración del comprobador de controladores.