Compartir a través de


DF: prueba de IOCTL aleatoria aproximada (confiabilidad)

Durante las pruebas aleatorias, la prueba Fuzz emite una serie de llamadas a la función DeviceIoControl con códigos de función, tipos de dispositivo, métodos de transferencia de datos y requisitos de acceso seleccionados de forma aleatoria a partir de un intervalo de valores especificado. Las llamadas incluyen búferes de entrada y salida con punteros y longitudes de búfer válidos y no válidos, y contenido generado aleatoriamente.

La prueba Fuzz realiza las pruebas aleatorias en todos los dispositivos abiertos durante la prueba abierta básica y pruebas abiertas adicionales. Puede personalizar esta prueba mediante los parámetros siguientes:

  • Use MinFunctionCode y MaxFunctionCode para especificar el intervalo de códigos de función IOCTL o FSCTL usados en las llamadas.
  • Use MinDeviceType y MaxDeviceType para especificar el intervalo de tipos de dispositivo usados en las llamadas.
  • Use SeedNumber para especificar un número de inicialización para la rutina de generación de números aleatorios.

La función que usa la prueba Fuzz para generar números aleatorios para la prueba usa un número de inicialización, un número inicial para el algoritmo de generación de números aleatorios. Para reproducir las condiciones de prueba, use el parámetro de número de inicialización para especificar el número de inicialización que se usó en la prueba de prueba original.

Se incluye una prueba aleatoria adaptada como parte de la prueba aleatoria. La prueba aleatoria adaptada utiliza los resultados de la prueba aleatoria para examinar la respuesta de los conductores a las solicitudes FSCTL con más detalle. Las áreas de sondeo de pruebas aleatorias adaptadas a las que se perdió la prueba aleatoria y aquellas en las que el controlador no respondió según lo esperado en función del estado devuelto por las llamadas de prueba aleatorias.

Binario de prueba: Devfund_FuzzTest.dll Métodos de prueba: DoRandomFSCTLTest

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). Se omiten las operaciones aleatorias de lectura y escritura.
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 Id. 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.
MinDeviceType Especifica el valor mínimo del campo DeviceType en las IOPS. El valor mínimo posible es 0. Use -1 para la detección automática de tipos (preferido).
MaxDeviceType Especifica el valor máximo del campo DeviceType en las IOPS. El valor máximo posible es 65535. Use -1 para la detección automática de tipos (preferido).
MinFunctionCode Especifica el valor mínimo del campo FunctionCode en las IOPS. El valor mínimo posible es 0.
MaxFunctionCode Especifica el valor máximo del campo FunctionCode en las IOPS. El valor máximo posible es 4095.
MinInBuffer Especifica el tamaño mínimo, en bytes, de los búferes de entrada que la prueba pasa al controlador en ioCTLs.
MaxInBuffer Especifica el tamaño máximo, en bytes, de los búferes de entrada que la prueba pasa al controlador en IOPS.
MinOutBuffer Especifica el tamaño mínimo, en bytes, de los búferes de salida que la prueba pasa al controlador en IOPS.
MaxOutBuffer Especifica el tamaño máximo, en bytes, de los búferes de salida que la prueba pasa al controlador en IOPS.
MaxRandomCalls Especifica el número máximo de llamadas que emite la prueba.
MaxTailoredCalls Especifica el número máximo de llamadas que emite la prueba durante la prueba aleatoria adaptada.
SeedNumber Se especificó el número de inicialización utilizado para generar ITL aleatorios.