Partager via


Tests de rappel du registre

Ce test automatisé exerce des cas de test de base pour un pilote de filtre de Registre.

Détails du test

   
Spécifications
  • Filter.Driver.FileSystem.MiniFilter
  • Filter.Driver.FileSystem.RegistryAndProcess
  • Filter.Driver.AntiVirus.RegistryAndProcess
  • Filter.Driver.AntiVirus.MiniFilter
Plateformes
  • Windows 10, éditions clientes (x86)
  • Windows 10, éditions clientes (x64)
  • Windows Server 2016 (x64)
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) 30
Catégorie Développement
Délai d’expiration (en minutes) 1800
Nécessite un redémarrage false
Nécessite une configuration spéciale false
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 la configuration requise pour le test : Conditions préalables au test du système de fichiers.

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, consultez Résolution des problèmes de test du système de fichiers.

Tous les cas de test retournent réussite ou échec. Pour passer en revue les détails du test, passez en revue le journal des tests à partir du Kit de laboratoire matériel Windows (Windows HLK) Studio. Pour les échecs de test, recherchez le terme « +sev » dans le journal.

Plus d’informations

Ce test inclut les cas de test suivants :

  • Conflit d’altitude

  • Bloc CreateKey

  • CreateKey Bypass

  • CreateKey Override Access Denied

  • Bloc de remplacement CreateKey

  • SetKeySecurity Bypass

  • Contournement de createkey transactionné

  • Contournement createkey transactionné (aucune validation)

  • Annuler l’inscription de close race

  • Enregistrer le remplacement de la restauration

Pour exécuter manuellement chaque cas de test, utilisez les procédures suivantes.

Pour exécuter manuellement le cas de test Altitude Conflict

  1. Inscrivez un rappel à l’altitude 1000.

  2. Inscrivez un autre rappel à la même altitude, puis vérifiez qu’il échoue.

  3. CreateKey le test Monitor.

  4. Inscrivez trois des mêmes rappels aux altitudes 1000, 2000 et 3000. Définissez les trois rappels en mode « surveiller ». Cela signifie que le rappel ne fera que retourner STATUS_SUCCESS.

  5. Créez une clé, puis vérifiez qu’elle réussit.

  6. Annuler l’inscription des rappels.

  7. Vérifiez que chaque rappel a été appelé de manière appropriée en fonction de son altitude.

Pour exécuter manuellement le cas de test CreateKey Block

  1. Inscrivez trois des mêmes rappels aux altitudes 1000, 2000 et 3000.

  2. Définissez les rappels 1000 et 3000 en mode « moniteur ». Cela signifie que le rappel ne fera que retourner STATUS_SUCCESS.

  3. Définissez callback 2000 en mode « bloquer ». Cela signifie que le rappel retourne une erreur status.

  4. Créez une clé, puis vérifiez qu’elle échoue.

  5. Annuler l’inscription des rappels.

  6. Vérifiez que chaque rappel a été appelé de manière appropriée en fonction de son altitude.

Pour exécuter manuellement le cas de test CreateKey Bypass

  1. Inscrivez trois des mêmes rappels aux altitudes 1000, 2000 et 3000.

  2. Définissez les rappels 1000 et 3000 en mode « moniteur ». Cela signifie que le rappel ne fera que retourner STATUS_SUCCESS.

  3. Définissez callback 2000 en mode « bypass ». Cela signifie que le rappel retourne un STATUS_CALLBACK_BYPASS et effectue l’opération pour le compte du Registre.

  4. Créez une clé, puis vérifiez qu’elle réussit.

  5. Annuler l’inscription des rappels.

  6. Vérifiez que chaque rappel a été appelé de manière appropriée en fonction de son altitude.

Pour exécuter manuellement le cas de test CreateKey Override Access Denied

  1. Créez une clé K1, puis définissez sa liste de contrôle d’accès discrétionnaire (DACL) pour accorder un accès en lecture seule.

  2. Créez une clé sous K1. Cette opération doit échouer en raison de la liste DACL en lecture seule.

  3. Inscrivez trois des mêmes rappels aux altitudes 1000, 2000 et 3000. STATUS_CALLBACK_BYPASS.

  4. Définissez les rappels 1000 et 3000 en mode « moniteur ». Cela signifie que le rappel ne fera que retourner STATUS_SUCCESS.

  5. Définissez callback 2000 sur le mode « contournement de l’accès refusé ». Cela signifie que le rappel effectuera l’opération à partir du mode utilisateur, ne sera pas bloqué par la liste DACL en lecture seule et retournera.

  6. Créez une clé sous K1, puis vérifiez qu’elle réussit.

  7. Annuler l’inscription des rappels.

  8. Vérifiez que chaque rappel a été appelé de manière appropriée en fonction de son altitude.

Pour exécuter manuellement le cas de test CreateKey Override Block

  1. Inscrivez quatre des mêmes rappels aux altitudes 1000, 2000, 3000 et 4000.

  2. Définissez les rappels 1000 et 4000 en mode « monitor ». Cela signifie que le rappel ne fera que retourner STATUS_SUCCESS.

  3. Définissez le rappel 2000 en mode « bloc ». Cela signifie que le rappel retourne STATUS_UNSUCCESSFUL.

  4. Définissez le mode « échec de remplacement » du rappel 3000. Cela signifie que si le rappel identifie STATUS_UNSUCCESSFUL dans le rappel post-opération, il effectue toujours l’opération et retourne la réussite.

  5. Créez une clé, puis vérifiez qu’elle réussit.

  6. Annuler l’inscription des rappels.

  7. Vérifiez que chaque rappel a été appelé de manière appropriée en fonction de son altitude.

Pour exécuter manuellement le cas de test SetKeySecurity Bypass

  1. Inscrivez trois des mêmes rappels aux altitudes 1000, 2000 et 3000.

  2. Définissez les rappels 1000 et 3000 en mode « monitor ». Cela signifie que le rappel ne fera que retourner STATUS_SUCCESS.

  3. Définissez le mode de contournement du rappel 2000. Cela signifie que le rappel retourne STATUS_CALLBACK_BYPASS et effectue l’opération pour le compte du Registre.

  4. Appelez RegSetKeySecurity pour définir le descripteur de sécurité d’une clé, puis vérifiez qu’elle réussit.

  5. Annuler l’inscription des rappels.

  6. Vérifiez que chaque rappel a été appelé de manière appropriée en fonction de son altitude.

Pour exécuter manuellement le cas de test CreateKey Bypass transacted

  1. Créez une transaction T1.

  2. Créez une clé dans le contexte de la transaction T1.

  3. Vérifiez que la clé réussit, puis supprimez-la.

  4. Inscrivez trois des mêmes rappels aux altitudes 1000, 2000 et 3000.

  5. Définissez les rappels 1000 et 3000 en mode « monitor ». Cela signifie que le rappel ne fera que retourner STATUS_SUCCESS.

  6. Définissez le mode de contournement du rappel 2000. Cela signifie que le rappel retourne STATUS_CALLBACK_BYPASS et effectue l’opération pour le compte du Registre.

  7. Créez une clé dans le contexte de la transaction T1, puis vérifiez qu’elle réussit.

  8. Validez la transaction.

  9. Annuler l’inscription des rappels.

Pour exécuter manuellement le cas de test CreateKey Bypass (sans validation) transacted

  • Effectuez les mêmes étapes que dans le cas de test Transacted CreateKey Bypass, mais ne commitez pas la transaction à la fin.

Pour exécuter manuellement le cas de test Annuler l’inscription close Race

  1. Démarrez un thread qui ouvre une clé de test, puis fermez le handle dans une boucle.

  2. Dans le thread d’origine, inscrivez et désinscrivez un rappel 100 fois.

  3. Signalez la sortie de l’autre thread.

Pour exécuter manuellement le cas de test Enregistrer le remplacement de la restauration

  1. Créez une clé sous la ruche logicielle.

  2. Inscrivez un rappel à l’altitude 1000 et définissez-le sur le mode « monitor ». Cela signifie que le rappel ne fera que retourner STATUS_SUCCESS.

  3. Appelez RegSaveKey sur la clé créée, puis vérifiez qu’elle réussit.

  4. Appelez RegRestoreKey sur la clé créée à l’aide du fichier hive créé par RegSaveKey , puis vérifiez qu’il réussit.

  5. Effectuez une copie du fichier hive.

  6. Chargez le fichier hive d’origine sous HKEY_LOCAL_MACHINE, puis vérifiez qu’il réussit.

  7. Appelez RegReplaceKey à l’aide de la copie du fichier hive. Cela doit échouer avec une violation de partage, mais cela déclenchera toujours les rappels pour cette opération.

  8. Annulez l’inscription du rappel, puis vérifiez qu’il a été appelé de manière appropriée.

Syntaxe de commande

Option de commande Description

RegCbTestctrl.exe -regr

Exécute le test.

Notes

   Pour obtenir de l’aide en ligne de commande pour ce binaire de test, tapez /h.

 

Liste de fichiers

File Emplacement

RegCbTestCtrl.exe

[WTT\TestBinRoot]\NTTEST\BASETEST\kernel\cm

RegCbTest.sys

[WTT\TestBinRoot]\NTTEST\BASETEST\kernel\cm

Ntlog.dll

 

Paramètres

Nom du paramètre Description des paramètres
LLU_LclAdminUser LLU pour l’exécution
LLU_NetAccessOnly LLU pour la copie