Partager via


DF - Fuzz open and close test (Fiabilité)

Ce test effectue des milliers de séquences de création,d’ouverture et de fermeture et utilise plusieurs méthodes différentes pour ouvrir et fermer des instances de l’appareil ou des appareils spécifiés : Opérations d’ouverture de base, Opérations d’ouverture directes de l’appareil et test de contrainte Ouvrir et Fermer.

Opérations d’ouverture de base

Pendant les opérations d’ouverture de base, le test Fuzz ouvre (crée) à plusieurs reprises les instances des appareils spécifiés ou des appareils exportés par le pilote spécifié à l’aide de différentes méthodes et options.

Le test Fuzz effectue toujours les opérations d’ouverture de base. Vous n’avez pas besoin de les sélectionner et vous ne pouvez pas les exclure d’une session de test.

Le test Fuzz effectue toutes les opérations ouvertes en mode utilisateur en appelant les services système (ZwXxx Routines) appropriés à l’appareil. Si un appel ouvert retourne un handle à l’appareil, le test Fuzz utilise le handle pour effectuer les autres tests d’appareil sélectionnés pour la session de test.

Il existe cinq types d’opérations ouvertes de base :

  • Ouverture standard : le test Fuzz ouvre l’appareil de manière asynchrone et spécifie uniquement le nom de l’appareil natif.

  • Ouvrir avec une barre oblique inverse ajoutée : le test Fuzz émet un appel ouvert pour le nom de l’appareil suivi d’une barre oblique inverse (), comme \device\cdrom\, comme si l’appel devait ouvrir un répertoire racine au sein de l’appareil.

    Cette opération détermine comment le pilote ou le système de fichiers gère les requêtes ouvertes dans son espace de noms. En particulier, si l’appareil ne prend pas en charge les demandes ouvertes dans son espace de noms, le pilote doit empêcher l’accès non autorisé, soit en échouant les demandes, soit en définissant la caractéristique d’appareil FILE_DEVICE_SECURE_OPEN lorsqu’il appelle IoCreateDevice ou IoCreateDeviceSecure pour créer l’objet d’appareil.

  • Ouvrir en tant que canal nommé : le test Fuzz ouvre l’appareil et établit un canal nommé vers l’appareil. Le paramètre d’accès (ShareAccess) est initialement défini sur lecture et écriture, mais est ajusté en cas d’échec de la requête. Si l’appareil ne prend pas en charge les canaux nommés, la demande doit échouer.

  • Ouvrir en tant que maillot : le test Fuzz ouvre l’appareil en tant que maillot. Si l’appareil ne prend pas en charge ce type de connexion, la demande doit échouer.

  • Ouvrir en tant que connexion d’arborescence : le test Fuzz ouvre l’appareil en tant que connexion d’arborescence à utiliser dans l’accès réseau à distance. Le paramètre d’accès (ShareAccess) est initialement défini sur lecture et écriture, mais est ajusté en cas d’échec de la requête. Si l’appareil ne prend pas en charge ce type de connexion, la demande doit échouer.

Les paramètres utilisés dans les appels ouverts varient pour tenir compte des caractéristiques de l’appareil et rendre probable la réussite des appels. Par exemple, si une opération d’ouverture de base échoue parce que l’appel ne répond pas aux exigences de sécurité de l’appareil, le test Fuzz répète l’opération d’ouverture avec une demande d’accès inférieur. Par exemple, si une opération d’ouverture qui a demandé un accès en écriture renvoie une erreur de violation de sécurité, l’ouverture est répétée avec une demande d’accès en lecture.

Opérations directes d’ouverture d’appareil

Pendant les opérations d’ouverture d’appareil directes, le test Fuzz ouvre l’appareil directement, en tant qu’appareil, et non en tant que fichier dans un système de fichiers. Les opérations d’ouverture d’appareil directes sont toujours synchrones. Si l’appel réussit, le test Fuzz utilise le handle fourni pour effectuer d’autres tests sélectionnés.

Ouvrir et fermer le test

Pendant le test Ouvrir et Fermer, le test Fuzz crée plusieurs threads, chacun d’entre eux effectuant des milliers de séquences de création, d’ouverture et de fermeture. Cela teste la capacité du pilote à gérer un volume extraordinaire d’appels autrement simples et anticipés.

Les tests Ouvrir et Fermer utilisent les mêmes options que celles utilisées dans les tests Opération d’ouverture de base et Ouvrir avec barre oblique inverse ajoutée et sont effectués juste avant ces tests.

Binaire de test : Devfund_FuzzTest.dll Méthode de test : DoOpenCloseTest

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érencement d’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 d’étiquettes de pool et de listes de recherche. Cette option surveille également les modifications apportées au nombre d’exceptions gérées, ce qui peut indiquer des erreurs dans la gestion des exceptions.
DoSync True ou False. Ouvre également les handles 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 auxquels le vérificateur de pilotes doit être activé
DriverVerifierExcludedFlags Espace réservé pour les indicateurs du vérificateur de pilotes 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 jugé nécessaire, 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 pilotes