Condividi tramite


Test di callback del Registro di sistema

Questo test automatizzato esegue test case di base per un driver di filtro del Registro di sistema.

Dettagli del test

   
Specifiche
  • Filter.Driver.FileSystem.MiniFilter
  • Filter.Driver.FileSystem.RegistryAndProcess
  • Filter.Driver.AntiVirus.RegistryAndProcess
  • Filter.Driver.AntiVirus.MiniFilter
Piattaforme
  • Windows 10, edizioni client (x86)
  • Windows 10, edizioni client (x64)
  • Windows Server 2016 (x64)
Versioni supportate
  • Windows 10
  • Windows 10 versione 1511
  • Windows 10 versione 1607
  • Windows 10 versione 1703
  • Windows 10, versione 1709
  • Windows 10, versione 1803
  • Windows 10, versione 1809
  • Windows 10, versione 1903
  • Eseguire quindi l'aggiornamento a Windows 10
Tempo di esecuzione previsto (in minuti) 30
Categoria Sviluppo
Timeout (in minuti) 1800
Richiede il riavvio false
Richiede una configurazione speciale false
Tipo automatic

 

Documentazione aggiuntiva

I test in questa area di funzionalità potrebbero avere documentazione aggiuntiva, inclusi i prerequisiti, la configurazione e le informazioni sulla risoluzione dei problemi, disponibili negli argomenti seguenti:

Esecuzione del test

Prima di eseguire il test, completare l'installazione del test come descritto nei requisiti di test: Prerequisiti di test del file system.

Risoluzione dei problemi relativi

Per la risoluzione generica degli errori di test HLK, vedere Risoluzione dei problemi di test di Windows HLK.

Per informazioni sulla risoluzione dei problemi, vedere Risoluzione dei problemi relativi ai test del file system.

Tutti i test case restituiscono Pass o Fail. Per esaminare i dettagli dei test, esaminare il log di test da Windows Hardware Lab Kit (Windows HLK) Studio. Per gli errori di test, cercare il termine "+sev" nel log.

Altre informazioni

Questo test include i test case seguenti:

  • Conflitto di altitudine

  • Blocco CreateKey

  • CreateKey Bypass

  • Accesso di override CreateKey negato

  • Blocco di override CreateKey

  • SetKeySecurity Bypass

  • Bypass CreateKey transazionato

  • Bypass CreateKey transazionato (nessun commit)

  • Annullare la registrazione di Close Race

  • Salva ripristino sostituisci

Per eseguire manualmente ogni test case, utilizzare le procedure seguenti.

Per eseguire manualmente il test case di conflitto di altitudine

  1. Registrare un callback all'altitudine 1000.

  2. Registrare un altro callback alla stessa altitudine e quindi verificare che l'operazione non riesca.

  3. CreateKey il test di Monitoraggio.

  4. Registrare tre degli stessi callback ad altitudini 1000, 2000 e 3000. Impostare tutti e tre i callback sulla modalità "monitor". Ciò significa che il callback non eseguirà alcuna operazione, ma restituirà STATUS_SUCCESS.

  5. Creare una chiave e quindi verificare che abbia esito positivo.

  6. Annullare la registrazione dei callback.

  7. Verificare che ogni callback sia stato richiamato in modo appropriato in base all'altitudine.

Per eseguire manualmente il test case Di blocco CreateKey

  1. Registrare tre degli stessi callback ad altitudini 1000, 2000 e 3000.

  2. Impostare callback 1000 e 3000 sulla modalità "monitor". Ciò significa che il callback non eseguirà alcuna operazione, ma restituirà STATUS_SUCCESS.

  3. Impostare callback 2000 sulla modalità "blocca". Ciò significa che il callback restituirà uno stato di errore.

  4. Creare una chiave e quindi verificare che l'operazione non riesca.

  5. Annullare la registrazione dei callback.

  6. Verificare che ogni callback sia stato richiamato in modo appropriato in base all'altitudine.

Per eseguire manualmente il test case CreateKey Bypass

  1. Registrare tre degli stessi callback ad altitudini 1000, 2000 e 3000.

  2. Impostare callback 1000 e 3000 sulla modalità "monitor". Ciò significa che il callback non eseguirà alcuna operazione, ma restituirà STATUS_SUCCESS.

  3. Impostare callback 2000 sulla modalità "bypass". Ciò significa che il callback restituirà un STATUS_CALLBACK_BYPASS ed eseguirà l'operazione per conto del Registro di sistema.

  4. Creare una chiave e quindi verificare che abbia esito positivo.

  5. Annullare la registrazione dei callback.

  6. Verificare che ogni callback sia stato richiamato in modo appropriato in base all'altitudine.

Per eseguire manualmente il test case di override di CreateKey Override Access Denied

  1. Creare una chiave K1 e quindi impostarne l'elenco di controllo di accesso discrezionale (DACL) per concedere l'accesso in sola lettura.

  2. Creare una chiave in K1. Questo errore dovrebbe avere esito negativo a causa dell'elenco DACL di sola lettura.

  3. Registrare tre degli stessi callback ad altitudini 1000, 2000 e 3000. STATUS_CALLBACK_BYPASS.

  4. Impostare callback 1000 e 3000 sulla modalità "monitor". Ciò significa che il callback non eseguirà alcuna operazione, ma restituirà STATUS_SUCCESS.

  5. Impostare callback 2000 sulla modalità "bypass di accesso negato". Ciò significa che il callback eseguirà l'operazione dalla modalità utente, non verrà bloccata dall'elenco DACL di sola lettura e restituirà .

  6. Creare una chiave in K1 e verificare che abbia esito positivo.

  7. Annullare la registrazione dei callback.

  8. Verificare che ogni callback sia stato richiamato in modo appropriato in base alla sua altitudine.

Per eseguire manualmente il test case di test CreateKey Override Block

  1. Registrare quattro degli stessi callback a altitudini 1000, 2000, 3000 e 4000.

  2. Impostare callback 1000 e 4000 in modalità "monitor". Ciò significa che il callback non farà nulla, ma restituirà STATUS_SUCCESS.

  3. Impostare callback 2000 su modalità "blocca". Ciò significa che il callback restituirà STATUS_UNSUCCESSFUL.

  4. Impostare callback 3000 in modalità "override failure". Ciò significa che se il callback identifica STATUS_UNSUCCESSFUL nel callback post-operazione, eseguirà comunque l'operazione e restituirà l'esito positivo.

  5. Creare una chiave e quindi verificare che abbia esito positivo.

  6. Annullare la registrazione dei callback.

  7. Verificare che ogni callback sia stato richiamato in modo appropriato in base alla sua altitudine.

Per eseguire manualmente il test case di test SetKeySecurity Bypass

  1. Registrare tre degli stessi callback a altitudini 1000, 2000 e 3000.

  2. Impostare callback 1000 e 3000 in modalità "monitor". Ciò significa che il callback non farà nulla, ma restituirà STATUS_SUCCESS.

  3. Impostare callback 2000 su modalità "bypass". Ciò significa che il callback restituirà STATUS_CALLBACK_BYPASS ed eseguirà l'operazione per conto del Registro di sistema.

  4. Chiamare RegSetKeySecurity per impostare il descrittore di sicurezza di una chiave e quindi verificare che abbia esito positivo.

  5. Annullare la registrazione dei callback.

  6. Verificare che ogni callback sia stato richiamato in modo appropriato in base alla sua altitudine.

Per eseguire manualmente il test case di test Transacted CreateKey Bypass

  1. Creare una transazione T1.

  2. Creare una chiave nel contesto della transazione T1.

  3. Verificare che la chiave abbia esito positivo e quindi eliminarla.

  4. Registrare tre degli stessi callback a altitudini 1000, 2000 e 3000.

  5. Impostare callback 1000 e 3000 in modalità "monitor". Ciò significa che il callback non farà nulla, ma restituirà STATUS_SUCCESS.

  6. Impostare callback 2000 su modalità "bypass". Ciò significa che il callback restituirà STATUS_CALLBACK_BYPASS ed eseguirà l'operazione per conto del Registro di sistema.

  7. Creare una chiave nel contesto della transazione T1 e quindi verificare che abbia esito positivo.

  8. Eseguire il commit della transazione.

  9. Annullare la registrazione dei callback.

Per eseguire manualmente il test case di test Transacted CreateKey Bypass (No Commit)

  • Completare gli stessi passaggi del test case di bypass CreateKey Transacted, ma non eseguire il commit della transazione alla fine.

Per eseguire manualmente il test case di chiusura della gara di annullamento della registrazione

  1. Avviare un thread che apre una chiave di test e quindi chiudere l'handle in un ciclo.

  2. Nel thread originale registrare e annullare la registrazione di un callback 100 volte.

  3. Segnalare l'altro thread da uscire.

Per eseguire manualmente il test case di salvataggio sostituisci sostituzione

  1. Creare una chiave nell'hive software.

  2. Registrare un callback a quota 1000 e impostarlo sulla modalità "monitor". Ciò significa che il callback non farà nulla, ma restituirà STATUS_SUCCESS.

  3. Chiamare RegSaveKey nella chiave creata e quindi verificare che abbia esito positivo.

  4. Chiamare RegRestoreKey nella chiave creata usando il file hive creato da RegSaveKey e quindi verificare che abbia esito positivo.

  5. Creare una copia del file hive.

  6. Caricare il file hive originale in HKEY_LOCAL_MACHINE e quindi verificare che abbia esito positivo.

  7. Chiamare RegReplaceKey usando la copia del file hive. Questo errore dovrebbe verificarsi con una violazione di condivisione, ma attiverà comunque i callback per questa operazione.

  8. Annullare la registrazione del callback e quindi verificare che sia stato richiamato in modo appropriato.

Sintassi dei comandi

Opzione comando Descrizione

RegCbTestctrl.exe -regr

Esegue il test.

Nota

   Per la Guida della riga di comando per questo file binario di test, digitare /h.

 

Elenco file

File Posizione

RegCbTestCtrl.exe

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

RegCbTest.sys

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

Ntlog.dll

 

Parametri

Nome parametro Descrizione dei parametri
LLU_LclAdminUser LLU per Execute
LLU_NetAccessOnly LLU per la copia