Compartir a través de


DF: prueba de IOCTL del búfer de longitud cero aproximada (confiabilidad)

Durante la prueba de búfer de Zero-Length, la prueba Fuzz emite una serie de llamadas a la función DeviceIoControl con longitudes de búfer de entrada o salida de 0. La prueba genera distintos códigos de control de E/S mediante diferentes códigos de función, tipos de dispositivo, métodos de transferencia de datos y requisitos de acceso. Para obtener información sobre el contenido de los códigos de control de E/S, vea Definición de códigos de control de E/S.

Para probar el control del controlador de punteros de búfer no válidos, los punteros de búfer de estas llamadas en modo de usuario especifican direcciones altas en el espacio de direcciones virtuales del kernel, como 0xFFFFFC00).

La prueba Fuzz realiza la prueba de búfer de Zero-Length en todos los dispositivos abiertos durante las pruebas abiertas básicas y adicionales. Puede personalizar esta prueba mediante los parámetros de comando MinFunctionCode y MaxFunctionCode para especificar el intervalo de códigos de función IOCTL usados en las llamadas y MinDeviceType y MaxDeviceType para especificar el intervalo de tipos de dispositivo usados en las llamadas.

  • Binario de prueba: Devfund_FuzzTest.dll
  • Método de prueba: DoZeroLengthBufferIOCTLTest

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 los IOCTLs. 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 los IOCTLs. 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 los IOCTLs. El valor mínimo posible es 0.
MaxFunctionCode Especifica el valor máximo del campo FunctionCode en las ICTLs. El valor máximo posible es 4095.