Partager via


DF - Test IOCTL aléatoire Fuzz (Fiabilité)

Pendant les tests aléatoires, le test Fuzz émet une série d’appels à la fonction DeviceIoControl avec des codes de fonction, des types d’appareils, des méthodes de transfert de données et des exigences d’accès qui sont sélectionnés au hasard à partir d’une plage de valeurs spécifiée. Les appels incluent des mémoires tampons d’entrée et de sortie avec des pointeurs et des longueurs de mémoire tampon valides et non valides, ainsi que du contenu généré de manière aléatoire.

Le test Fuzz effectue les tests aléatoires sur tous les appareils ouverts pendant le test ouvert de base et des tests ouverts supplémentaires. Vous pouvez personnaliser ce test à l’aide des paramètres suivants :

  • Utilisez MinFunctionCode et MaxFunctionCode pour spécifier la plage de codes de fonction IOCTL ou FSCTL utilisés dans les appels
  • Utilisez MinDeviceType et MaxDeviceType pour spécifier la plage de types d’appareils utilisés dans les appels
  • Utilisez SeedNumber pour spécifier un numéro de départ pour la routine de génération de nombres aléatoires.

La fonction utilisée par le test Fuzz pour générer des nombres aléatoires pour le test utilise un nombre initial, un nombre de départ pour l’algorithme de génération de nombres aléatoires. Pour reproduire les conditions de test, utilisez le paramètre de numéro de départ pour spécifier le numéro de départ utilisé dans l’essai d’origine.

Un test aléatoire personnalisé est inclus dans le cadre du test aléatoire. Le test aléatoire personnalisé utilise les résultats du test aléatoire pour examiner plus en détail la réponse des conducteurs aux demandes FSCTL. Les sondes de test aléatoire personnalisées ont manqué le test aléatoire et celles sur lesquelles le conducteur n’a pas répondu comme prévu en fonction des status retournées par les appels de test aléatoires.

Binaire de test : Devfund_FuzzTest.dll Méthodes de test : DoRandomFSCTLTest

Détails du test

   
Spécifications
  • Device.DevFund.Reliability.BasicReliabilityAndPerformance
  • Device.DevFund.Reliability.BasicSecurity
  • Device.DevFund.DriverFramework.KMDF.Reliability
  • Device.DevFund.DriverFramework.UMDF.Reliability
Plateformes
  • Windows 10, éditions clientes (x86)
  • Windows 10, éditions clientes (x64)
  • Windows Server 2016 (x64)
  • Windows 10, éditions clientes (Arm64)
  • Windows 10, édition mobile (Arm)
  • Windows 10, édition mobile (Arm64)
Versions prises en charge
  • Windows 10
  • Windows 10, version 1511
  • Windows 10, version 1607
  • Windows 10 version 1703
  • Windows 10, version 1709
  • Windows 10 version 1803
  • Windows 10, version 1809
  • Windows 10 version 1903
  • Prochaine mise à jour de Windows 10
Durée d’exécution attendue (en minutes) 15
Catégorie Scénario
Délai d’expiration (en minutes) 180
Nécessite un redémarrage false
Nécessite une configuration spéciale true
Type automatique

 

Documentation supplémentaire

Les tests de cette zone de fonctionnalité peuvent avoir une documentation supplémentaire, y compris les conditions préalables, l’installation et les informations de résolution des problèmes, que vous trouverez dans les rubriques suivantes :

Exécution du test

Avant d’exécuter le test, effectuez la configuration du test comme décrit dans les conditions requises pour le test : Device.Fundamentals Reliability Testing Prerequisites.

Dépannage

Pour la résolution des problèmes génériques des échecs de test HLK, consultez Résolution des échecs de test HLK Windows.

Pour plus d’informations sur la résolution des problèmes spécifiques aux tests De base de l’appareil dans HLK et WDK, consultez la documentation supplémentaire Device.DevFund.

Plus d’informations

Paramètres

Nom du paramètre Description des paramètres
DQ Une requête WDTF SDEL utilisée pour identifier le ou les appareils cibles : https://go.microsoft.com/fwlink/?LinkId=232678
Wpa2PskAesSsid Obligatoire UNIQUEMENT si DUT ou l’un de ses appareils enfants est un adaptateur Wi-Fi. Fournissez le SSID d’un réseau Wi-Fi WPA2 AES que le test peut utiliser pour tester l’adaptateur Wi-Fi. La valeur par défaut est « kitstestssid ».
Wpa2PskPassword Obligatoire UNIQUEMENT si DUT ou l’un de ses appareils enfants est un adaptateur Wi-Fi. Indiquez le mot de passe du réseau Wi-Fi WPA2 AES spécifié à l’aide du paramètre Wpa2PskAesSsid. La valeur par défaut est « password ».
ChangeBufferProtectionFlags True ou False. Modifie les indicateurs de protection de la mémoire des mémoires tampons passées à l’appareil testé. Les indicateurs de protection de la mémoire alternent entre aucun accès, lecture seule et lecture seule avec protection de page.
Impersonate True ou False. Exécute le test en tant qu’utilisateur non administratif.
FillZeroPageWithNull True ou False. Mappe la page zéro et la remplit avec des valeurs NULL. Ce test identifie les pilotes qui ne vérifient pas une référence de pointeur avant de déréférencer un pointeur.
DoPoolCheck True ou False. Surveille l’utilisation par le pilote des pools de mémoire système paginés et non paginés à l’aide de balises de pool et de listes de lookaside. Cette option surveille également les modifications du nombre d’exceptions gérées, ce qui peut indiquer des erreurs dans la gestion des exceptions.
DoSync True ou False. Ouvre également les descripteurs d’appareil en mode SYNC (FILE_SYNCHRONOUS_IO_ALERT). Les opérations de lecture et d’écriture aléatoires sont ignorées.
TestCycles Nombre de cycles de test.
DriverVerifierAdditionalDrivers Pilotes supplémentaires dont le vérificateur de pilotes doit être activé
DriverVerifierExcludedFlags Espace réservé pour les indicateurs du vérificateur de pilote qui peuvent être exclus manuellement pour la série de tests
WDKDeviceID ID d’appareil de l’appareil en cours de test
QueryHardwareID ID matériel de l’appareil en cours de test
WDTFREMOTESYSTEM Obligatoire UNIQUEMENT si DUT ou l’un de ses appareils enfants est une carte réseau câblée qui n’a pas d’adresse de passerelle IPv6. S’il est déterminé comme obligatoire, indiquez une adresse IPv6 que la carte réseau de test peut effectuer un test ping pour tester les E/S réseau. Par exemple: fe80::78b6:810:9c12:46cd
DriverVerifierCustomizeConfiguration Spécifie que ce test peut vouloir mettre à jour automatiquement les paramètres du vérificateur de pilote
MinDeviceType Spécifie la valeur minimale du champ DeviceType dans les IOCTL. La valeur minimale possible est 0. Utilisez -1 pour la détection automatique de type (par défaut).
MaxDeviceType Spécifie la valeur maximale du champ DeviceType dans les IOCTL. La valeur maximale possible est 65535. Utilisez -1 pour la détection automatique de type (par défaut).
MinFunctionCode Spécifie la valeur minimale du champ FunctionCode dans les IOCTL. La valeur minimale possible est 0.
MaxFunctionCode Spécifie la valeur maximale du champ FunctionCode dans les IOCTL. La valeur maximale possible est 4095.
MinInBuffer Spécifie la taille minimale, en octets, des mémoires tampons d’entrée que le test transmet au pilote dans IOCTL.
MaxInBuffer Spécifie la taille maximale, en octets, des mémoires tampons d’entrée que le test transmet au pilote dans IOCTL.
MinOutBuffer Spécifie la taille minimale, en octets, des mémoires tampons de sortie que le test transmet au pilote dans IOCTL.
MaxOutBuffer Spécifie la taille maximale, en octets, des mémoires tampons de sortie que le test transmet au pilote dans IOCTL.
MaxRandomCalls Spécifie le nombre maximal d’appels que le test émet.
MaxTailoredCalls Spécifie le nombre maximal d’appels que le test émet pendant le test aléatoire personnalisé.
SeedNumber Spécifie le numéro de départ utilisé pour générer des IOCTL aléatoires.