Freigeben über


Registrierungsrückruf – Tests

Dieser automatisierte Test führt einfache Testfälle für einen Registrierungsfiltertreiber aus.

Testdetails

   
Spezifikationen
  • Filter.Driver.FileSystem.MiniFilter
  • Filter.Driver.FileSystem.RegistryAndProcess
  • Filter.Driver.AntiVirus.RegistryAndProcess
  • Filter.Driver.AntiVirus.MiniFilter
Plattformen
  • Windows 10, Client-Editionen (x86)
  • Windows 10, Client-Editionen (x64)
  • Windows Server 2016 (x64)
Unterstützte Versionen
  • 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
  • Nächstes Update auf Windows 10
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“

  1. Registrieren Sie einen Rückruf bei Höhe 1000.

  2. Registrieren Sie einen weiteren Rückruf auf derselben Höhe, und vergewissern Sie sich dann, dass der Rückruf fehlschlägt.

  3. Führen Sie „CreateKey“ für den Test „Monitor“ aus.

  4. 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.

  5. Erstellen Sie einen Schlüssel, und vergewissern Sie sich dann, dass er funktioniert.

  6. Heben Sie die Registrierung der Rückrufe auf.

  7. Stellen Sie sicher, dass jeder Rückruf entsprechend der Höhe aufgerufen wurde.

Manuelle Ausführung des Testfalls „CreateKey Block“

  1. Registrieren Sie drei gleiche Rückrufe bei Höhe 1000, 2000 und 3000.

  2. Legen Sie Rückrufe 1000 und 3000 auf den Modus „Monitor“ fest. Das bedeutet, dass diese Rückrufe lediglich „STATUS_SUCCESS“ zurückgeben.

  3. Legen Sie Rückruf 2000 auf den Modus „Block“ fest. Das bedeutet, dass der Rückruf einen Fehlerstatus zurückgibt.

  4. Erstellen Sie einen Schlüssel, und vergewissern Sie sich dann, dass er nicht funktioniert.

  5. Heben Sie die Registrierung der Rückrufe auf.

  6. Stellen Sie sicher, dass jeder Rückruf entsprechend der Höhe aufgerufen wurde.

Manuelle Ausführung des Testfalls „CreateKey Bypass“

  1. Registrieren Sie drei gleiche Rückrufe bei Höhe 1000, 2000 und 3000.

  2. Legen Sie Rückrufe 1000 und 3000 auf den Modus „Monitor“ fest. Das bedeutet, dass diese Rückrufe lediglich „STATUS_SUCCESS“ zurückgeben.

  3. 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.

  4. Erstellen Sie einen Schlüssel, und vergewissern Sie sich dann, dass er funktioniert.

  5. Heben Sie die Registrierung der Rückrufe auf.

  6. Stellen Sie sicher, dass jeder Rückruf entsprechend der Höhe aufgerufen wurde.

Manuelle Ausführung des Testfalls „CreateKey Override Access Denied“

  1. Erstellen Sie den Schlüssel „K1“, und legen Sie dessen besitzerverwaltete Zugriffssteuerungsliste (DACL) auf schreibgeschützten Zugriff fest.

  2. Erstellen Sie einen Schlüssel unter K1. Dieser sollte aufgrund der schreibgeschützten DACL nicht funktionieren.

  3. Registrieren Sie drei gleiche Rückrufe bei Höhe 1000, 2000 und 3000. STATUS_CALLBACK_BYPASS

  4. Legen Sie Rückrufe 1000 und 3000 auf den Modus „Monitor“ fest. Das bedeutet, dass diese Rückrufe lediglich „STATUS_SUCCESS“ zurückgeben.

  5. 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.

  6. Erstellen Sie einen Schlüssel unter K1, und vergewissern Sie sich dann, dass er funktioniert.

  7. Heben Sie die Registrierung der Rückrufe auf.

  8. Stellen Sie sicher, dass jeder Rückruf entsprechend der Höhe aufgerufen wurde.

Manuelle Ausführung des Testfalls „CreateKey Override Block“

  1. Registrieren Sie vier gleiche Rückrufe bei Höhe 1000, 2000, 3000 und 4000.

  2. Legen Sie Rückrufe 1000 und 4000 auf den Modus „Monitor“ fest. Das bedeutet, dass diese Rückrufe lediglich „STATUS_SUCCESS“ zurückgeben.

  3. Legen Sie Rückruf 2000 auf den Modus „Block“ fest. Das bedeutet, dass der Rückruf „STATUS_UNSUCCESSFUL“ zurückgibt.

  4. 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.

  5. Erstellen Sie einen Schlüssel, und vergewissern Sie sich dann, dass er funktioniert.

  6. Heben Sie die Registrierung der Rückrufe auf.

  7. Stellen Sie sicher, dass jeder Rückruf entsprechend der Höhe aufgerufen wurde.

Manuelle Ausführung des Testfalls „SetKeySecurity Bypass“

  1. Registrieren Sie drei gleiche Rückrufe bei Höhe 1000, 2000 und 3000.

  2. Legen Sie Rückrufe 1000 und 3000 auf den Modus „Monitor“ fest. Das bedeutet, dass diese Rückrufe lediglich „STATUS_SUCCESS“ zurückgeben.

  3. 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.

  4. Rufen Sie RegSetKeySecurity auf, um den Sicherheitsdeskriptor eines Schlüssels festzulegen, und vergewissern Sie sich dann, dass er funktioniert.

  5. Heben Sie die Registrierung der Rückrufe auf.

  6. Stellen Sie sicher, dass jeder Rückruf entsprechend der Höhe aufgerufen wurde.

Manuelle Ausführung des Testfalls „Transacted CreateKey Bypass“

  1. Erstellen Sie die Transaktion „T1“.

  2. Erstellen Sie einen Schlüssel im Kontext der Transaktion T1.

  3. Vergewissern Sie sich, dass der Schlüssel funktioniert, und löschen Sie ihn dann.

  4. Registrieren Sie drei gleiche Rückrufe bei Höhe 1000, 2000 und 3000.

  5. Legen Sie Rückrufe 1000 und 3000 auf den Modus „Monitor“ fest. Das bedeutet, dass diese Rückrufe lediglich „STATUS_SUCCESS“ zurückgeben.

  6. 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.

  7. Erstellen Sie einen Schlüssel im Kontext der Transaktion T1, und vergewissern Sie sich dann, dass er funktioniert.

  8. Führen Sie einen Commit für die Transaktion aus.

  9. 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“

  1. Starten Sie einen Thread, der einen Testschlüssel öffnet, und schließen Sie dann das Handle in einer Schleife.

  2. Im ursprünglichen Thread müssen Sie einen Rückruf 100-mal registrieren und die Registrierung 100-mal aufheben.

  3. Signalisieren Sie dem anderen Thread, dass er beendet werden soll.

Manuelle Ausführung des Testfalls „Save Restore Replace“

  1. Erstellen Sie einen Schlüssel unter der Softwarestruktur.

  2. 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.

  3. Rufen Sie RegSaveKey im erstellten Schlüssel auf, und vergewissern Sie sich dann, dass er funktioniert.

  4. Rufen Sie RegRestoreKey im erstellten Schlüssel mithilfe der Strukturdatei auf, die RegSaveKey erstellt hat, und vergewissern Sie sich dann, dass er funktioniert.

  5. Erstellen Sie eine Kopie der Strukturdatei.

  6. Laden Sie die ursprüngliche Strukturdatei unter „HKEY_LOCAL_MACHINE“, und vergewissern Sie sich dann, dass sie funktioniert.

  7. 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.

  8. 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