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 |
|
Plateformes |
|
Versions prises en charge |
|
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
Inscrivez un rappel à l’altitude 1000.
Inscrivez un autre rappel à la même altitude, puis vérifiez qu’il échoue.
CreateKey le test Monitor.
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.
Créez une clé, puis vérifiez qu’elle réussit.
Annuler l’inscription des rappels.
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
Inscrivez trois des mêmes rappels aux altitudes 1000, 2000 et 3000.
Définissez les rappels 1000 et 3000 en mode « moniteur ». Cela signifie que le rappel ne fera que retourner STATUS_SUCCESS.
Définissez callback 2000 en mode « bloquer ». Cela signifie que le rappel retourne une erreur status.
Créez une clé, puis vérifiez qu’elle échoue.
Annuler l’inscription des rappels.
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
Inscrivez trois des mêmes rappels aux altitudes 1000, 2000 et 3000.
Définissez les rappels 1000 et 3000 en mode « moniteur ». Cela signifie que le rappel ne fera que retourner STATUS_SUCCESS.
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.
Créez une clé, puis vérifiez qu’elle réussit.
Annuler l’inscription des rappels.
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
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.
Créez une clé sous K1. Cette opération doit échouer en raison de la liste DACL en lecture seule.
Inscrivez trois des mêmes rappels aux altitudes 1000, 2000 et 3000. STATUS_CALLBACK_BYPASS.
Définissez les rappels 1000 et 3000 en mode « moniteur ». Cela signifie que le rappel ne fera que retourner STATUS_SUCCESS.
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.
Créez une clé sous K1, puis vérifiez qu’elle réussit.
Annuler l’inscription des rappels.
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
Inscrivez quatre des mêmes rappels aux altitudes 1000, 2000, 3000 et 4000.
Définissez les rappels 1000 et 4000 en mode « monitor ». Cela signifie que le rappel ne fera que retourner STATUS_SUCCESS.
Définissez le rappel 2000 en mode « bloc ». Cela signifie que le rappel retourne STATUS_UNSUCCESSFUL.
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.
Créez une clé, puis vérifiez qu’elle réussit.
Annuler l’inscription des rappels.
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
Inscrivez trois des mêmes rappels aux altitudes 1000, 2000 et 3000.
Définissez les rappels 1000 et 3000 en mode « monitor ». Cela signifie que le rappel ne fera que retourner STATUS_SUCCESS.
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.
Appelez RegSetKeySecurity pour définir le descripteur de sécurité d’une clé, puis vérifiez qu’elle réussit.
Annuler l’inscription des rappels.
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
Créez une transaction T1.
Créez une clé dans le contexte de la transaction T1.
Vérifiez que la clé réussit, puis supprimez-la.
Inscrivez trois des mêmes rappels aux altitudes 1000, 2000 et 3000.
Définissez les rappels 1000 et 3000 en mode « monitor ». Cela signifie que le rappel ne fera que retourner STATUS_SUCCESS.
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.
Créez une clé dans le contexte de la transaction T1, puis vérifiez qu’elle réussit.
Validez la transaction.
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
Démarrez un thread qui ouvre une clé de test, puis fermez le handle dans une boucle.
Dans le thread d’origine, inscrivez et désinscrivez un rappel 100 fois.
Signalez la sortie de l’autre thread.
Pour exécuter manuellement le cas de test Enregistrer le remplacement de la restauration
Créez une clé sous la ruche logicielle.
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.
Appelez RegSaveKey sur la clé créée, puis vérifiez qu’elle réussit.
Appelez RegRestoreKey sur la clé créée à l’aide du fichier hive créé par RegSaveKey , puis vérifiez qu’il réussit.
Effectuez une copie du fichier hive.
Chargez le fichier hive d’origine sous HKEY_LOCAL_MACHINE, puis vérifiez qu’il réussit.
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.
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 |