Registrierungsrückruf – Tests
Dieser automatisierte Test führt einfache Testfälle für einen Registrierungsfiltertreiber aus.
Testdetails
Spezifikationen |
|
Plattformen |
|
Unterstützte Versionen |
|
Voraussichtliche Laufzeit (in Minuten) | 30 |
Kategorie | Entwicklung |
Zeitüberschreitung (in Minuten) | 1800 |
Neustart erforderlich | false |
Erfordert eine spezielle Konfiguration | false |
Typ | automatic |
Zusätzliche Dokumentation
Tests in diesem Funktionsbereich enthalten möglicherweise zusätzliche Dokumentation, einschließlich Informationen zu Voraussetzungen, Einrichtung und Fehlerbehebung, die in den folgenden Themen zu finden sind:
Ausführen des Tests
Bevor Sie den Test ausführen, schließen Sie die Testeinrichtung wie in den Testanforderungen beschrieben ab: Testvoraussetzungen für Dateisysteme.
Problembehandlung
Informationen zur allgemeinen Problembehandlung bei HLK-Testfehlern finden Sie unter Problembehandlung bei Windows HLK-Testfehlern.
Informationen zur Problembehandlung finden Sie unter Problembehandlung bei Dateisystemtests.
Alle Testfälle geben „Pass“ oder „Fail“ zurück. Die Testdetails finden Sie im Testprotokoll von Windows Hardware Lab Kit (Windows HLK) Studio. Suchen Sie im Protokoll mit dem Begriff „+sev“ nach Testfehlern.
Weitere Informationen
Dieser Test enthält die folgenden Testfälle:
Altitude Conflict
CreateKey Block
CreateKey Bypass
CreateKey Override Access Denied
CreateKey Override Block
SetKeySecurity Bypass
Transacted CreateKey Bypass
Transacted CreateKey Bypass (No Commit)
Unregister Close Race
Save Restore Replace
Die folgenden Schritte sind zur manuellen Ausführung der einzelnen Testfälle nötig.
Manuelle Ausführung des Testfalls „Altitude Conflict“
Registrieren Sie einen Rückruf bei Höhe 1000.
Registrieren Sie einen weiteren Rückruf auf derselben Höhe, und vergewissern Sie sich dann, dass der Rückruf fehlschlägt.
Führen Sie „CreateKey“ für den Test „Monitor“ aus.
Registrieren Sie drei gleiche Rückrufe bei Höhe 1000, 2000 und 3000. Legen Sie alle drei Rückrufe auf den Modus „Monitor“ fest. Das bedeutet, dass diese Rückrufe lediglich „STATUS_SUCCESS“ zurückgeben.
Erstellen Sie einen Schlüssel, und vergewissern Sie sich dann, dass er funktioniert.
Heben Sie die Registrierung der Rückrufe auf.
Stellen Sie sicher, dass jeder Rückruf entsprechend der Höhe aufgerufen wurde.
Manuelle Ausführung des Testfalls „CreateKey Block“
Registrieren Sie drei gleiche Rückrufe bei Höhe 1000, 2000 und 3000.
Legen Sie Rückrufe 1000 und 3000 auf den Modus „Monitor“ fest. Das bedeutet, dass diese Rückrufe lediglich „STATUS_SUCCESS“ zurückgeben.
Legen Sie Rückruf 2000 auf den Modus „Block“ fest. Das bedeutet, dass der Rückruf einen Fehlerstatus zurückgibt.
Erstellen Sie einen Schlüssel, und vergewissern Sie sich dann, dass er nicht funktioniert.
Heben Sie die Registrierung der Rückrufe auf.
Stellen Sie sicher, dass jeder Rückruf entsprechend der Höhe aufgerufen wurde.
Manuelle Ausführung des Testfalls „CreateKey Bypass“
Registrieren Sie drei gleiche Rückrufe bei Höhe 1000, 2000 und 3000.
Legen Sie Rückrufe 1000 und 3000 auf den Modus „Monitor“ fest. Das bedeutet, dass diese Rückrufe lediglich „STATUS_SUCCESS“ zurückgeben.
Legen Sie Rückruf 2000 auf den Modus „Bypass“ fest. Das bedeutet, dass der Rückruf „STATUS_CALLBACK_BYPASS“ zurückgibt und den Vorgang im Namen der Registrierung ausführt.
Erstellen Sie einen Schlüssel, und vergewissern Sie sich dann, dass er funktioniert.
Heben Sie die Registrierung der Rückrufe auf.
Stellen Sie sicher, dass jeder Rückruf entsprechend der Höhe aufgerufen wurde.
Manuelle Ausführung des Testfalls „CreateKey Override Access Denied“
Erstellen Sie den Schlüssel „K1“, und legen Sie dessen besitzerverwaltete Zugriffssteuerungsliste (DACL) auf schreibgeschützten Zugriff fest.
Erstellen Sie einen Schlüssel unter K1. Dieser sollte aufgrund der schreibgeschützten DACL nicht funktionieren.
Registrieren Sie drei gleiche Rückrufe bei Höhe 1000, 2000 und 3000. STATUS_CALLBACK_BYPASS
Legen Sie Rückrufe 1000 und 3000 auf den Modus „Monitor“ fest. Das bedeutet, dass diese Rückrufe lediglich „STATUS_SUCCESS“ zurückgeben.
Legen Sie Rückruf 2000 auf den Modus „Access Denied Bypass“ fest. Das bedeutet, dass der Rückruf den Vorgang im Benutzermodus ausführt, nicht durch die schreibgeschützte DACL blockiert wird und ein Ergebnis zurückgibt.
Erstellen Sie einen Schlüssel unter K1, und vergewissern Sie sich dann, dass er funktioniert.
Heben Sie die Registrierung der Rückrufe auf.
Stellen Sie sicher, dass jeder Rückruf entsprechend der Höhe aufgerufen wurde.
Manuelle Ausführung des Testfalls „CreateKey Override Block“
Registrieren Sie vier gleiche Rückrufe bei Höhe 1000, 2000, 3000 und 4000.
Legen Sie Rückrufe 1000 und 4000 auf den Modus „Monitor“ fest. Das bedeutet, dass diese Rückrufe lediglich „STATUS_SUCCESS“ zurückgeben.
Legen Sie Rückruf 2000 auf den Modus „Block“ fest. Das bedeutet, dass der Rückruf „STATUS_UNSUCCESSFUL“ zurückgibt.
Legen Sie Rückruf 3000 auf den Modus „Override Failure“ fest. Wenn der Rückruf nach dem Vorgang „STATUS_UNSUCCESSFUL“ identifiziert, dann wird der Vorgang dadurch weiterhin ausführt und gibt eine Erfolgsmeldung zurück.
Erstellen Sie einen Schlüssel, und vergewissern Sie sich dann, dass er funktioniert.
Heben Sie die Registrierung der Rückrufe auf.
Stellen Sie sicher, dass jeder Rückruf entsprechend der Höhe aufgerufen wurde.
Manuelle Ausführung des Testfalls „SetKeySecurity Bypass“
Registrieren Sie drei gleiche Rückrufe bei Höhe 1000, 2000 und 3000.
Legen Sie Rückrufe 1000 und 3000 auf den Modus „Monitor“ fest. Das bedeutet, dass diese Rückrufe lediglich „STATUS_SUCCESS“ zurückgeben.
Legen Sie Rückruf 2000 auf den Modus „Bypass“ fest. Das bedeutet, dass der Rückruf „STATUS_CALLBACK_BYPASS“ zurückgibt und den Vorgang im Namen der Registrierung ausführt.
Rufen Sie RegSetKeySecurity auf, um den Sicherheitsdeskriptor eines Schlüssels festzulegen, und vergewissern Sie sich dann, dass er funktioniert.
Heben Sie die Registrierung der Rückrufe auf.
Stellen Sie sicher, dass jeder Rückruf entsprechend der Höhe aufgerufen wurde.
Manuelle Ausführung des Testfalls „Transacted CreateKey Bypass“
Erstellen Sie die Transaktion „T1“.
Erstellen Sie einen Schlüssel im Kontext der Transaktion T1.
Vergewissern Sie sich, dass der Schlüssel funktioniert, und löschen Sie ihn dann.
Registrieren Sie drei gleiche Rückrufe bei Höhe 1000, 2000 und 3000.
Legen Sie Rückrufe 1000 und 3000 auf den Modus „Monitor“ fest. Das bedeutet, dass diese Rückrufe lediglich „STATUS_SUCCESS“ zurückgeben.
Legen Sie Rückruf 2000 auf den Modus „Bypass“ fest. Das bedeutet, dass der Rückruf „STATUS_CALLBACK_BYPASS“ zurückgibt und den Vorgang im Namen der Registrierung ausführt.
Erstellen Sie einen Schlüssel im Kontext der Transaktion T1, und vergewissern Sie sich dann, dass er funktioniert.
Führen Sie einen Commit für die Transaktion aus.
Heben Sie die Registrierung der Rückrufe auf.
Manuelle Ausführung des Testfalls „Transacted CreateKey Bypass (No Commit)“
- Führen Sie die gleichen Schritte wie im Testfall „Transacted CreateKey Bypass“ durch, committen Sie die Transaktion jedoch nicht am Ende.
Manuelle Ausführung des Testfalls „Unregister Close Race“
Starten Sie einen Thread, der einen Testschlüssel öffnet, und schließen Sie dann das Handle in einer Schleife.
Im ursprünglichen Thread müssen Sie einen Rückruf 100-mal registrieren und die Registrierung 100-mal aufheben.
Signalisieren Sie dem anderen Thread, dass er beendet werden soll.
Manuelle Ausführung des Testfalls „Save Restore Replace“
Erstellen Sie einen Schlüssel unter der Softwarestruktur.
Registrieren Sie einen Rückruf bei Höhe 1000, und legen Sie ihn auf den Modus „Monitor“ fest. Das bedeutet, dass diese Rückrufe lediglich „STATUS_SUCCESS“ zurückgeben.
Rufen Sie RegSaveKey im erstellten Schlüssel auf, und vergewissern Sie sich dann, dass er funktioniert.
Rufen Sie RegRestoreKey im erstellten Schlüssel mithilfe der Strukturdatei auf, die RegSaveKey erstellt hat, und vergewissern Sie sich dann, dass er funktioniert.
Erstellen Sie eine Kopie der Strukturdatei.
Laden Sie die ursprüngliche Strukturdatei unter „HKEY_LOCAL_MACHINE“, und vergewissern Sie sich dann, dass sie funktioniert.
Rufen Sie RegReplaceKey mithilfe der Kopie der Strukturdatei auf. Dieser Vorgang sollte mit einer Freigabeverletzung fehlschlagen, löst aber dennoch die Rückrufe für den Vorgang aus.
Heben Sie die Registrierung des Rückrufs auf, und überprüfen Sie dann, ob er entsprechend aufgerufen wurde.
Befehlssyntax
Befehlsoption | Beschreibung |
---|---|
RegCbTestctrl.exe -regr |
Führt den Test aus |
Hinweis
Geben Sie /h ein, um die Befehlszeilenhilfe für diese Testbinärdatei anzuzeigen.
Dateiliste
Datei | Standort |
---|---|
RegCbTestCtrl.exe |
[WTT\TestBinRoot]\NTTEST\BASETEST\kernel\cm |
RegCbTest.sys |
[WTT\TestBinRoot]\NTTEST\BASETEST\kernel\cm |
Ntlog.dll |
Parameter
Parametername | Parameterbeschreibung |
---|---|
LLU_LclAdminUser | LLU zum Ausführen |
LLU_NetAccessOnly | LLU zum Kopieren |