Testes de retorno de chamada do Registro
Esse teste automatizado exercita casos de teste básicos para um driver de filtro do Registro.
Detalhes do teste
Especificações |
|
Plataformas |
|
Versões com suporte |
|
Tempo de execução esperado (em minutos) | 30 |
Categoria | Desenvolvimento |
Tempo limite (em minutos) | 1800 |
Requer reinicialização | false |
Requer configuração especial | false |
Tipo | automático |
Documentação adicional
Os testes nessa área de recurso podem ter documentação adicional, incluindo pré-requisitos, configuração e informações de solução de problemas, que podem ser encontradas nos tópicos a seguir:
Executando o teste
Antes de executar o teste, conclua a configuração de teste conforme descrito nos requisitos de teste: Pré-requisitos de teste do sistema de arquivos.
Solucionando problemas
Para solução de problemas genéricos de falhas de teste do HLK, consulte Solução de problemas de falhas de teste do Windows HLK.
Para obter informações de solução de problemas, consulte Solução de problemas de teste do sistema de arquivos.
Todos os casos de teste retornam Pass ou Fail. Para examinar os detalhes do teste, examine o log de teste do Windows Hardware Lab Kit (Windows HLK) Studio. Para falhas de teste, pesquise o termo "+sev" no log.
Mais informações
Esse teste inclui os seguintes casos de teste:
Conflito de altitude
Bloco CreateKey
CreateKey Bypass
Acesso de substituição de CreateKey negado
Bloco de substituição CreateKey
SetKeySecurity Bypass
Bypass CreateKey transacionado
Bypass CreateKey transacionado (sem confirmação)
Cancelar o registro da corrida de fechamento
Salvar Restauração Substituir
Para executar manualmente cada caso de teste, use os procedimentos a seguir.
Para executar manualmente o caso de teste conflito de altitude
Registre um retorno de chamada na altitude 1000.
Registre outro retorno de chamada na mesma altitude e verifique se ele falha.
CreateKey o teste do Monitor.
Registre três dos mesmos retornos de chamada em altitudes 1000, 2000 e 3000. Defina todos os três retornos de chamada para o modo "monitor". Isso significa que o retorno de chamada não fará nada além de retornar STATUS_SUCCESS.
Crie uma chave e verifique se ela foi bem-sucedida.
Cancele o registro dos retornos de chamada.
Verifique se cada retorno de chamada foi invocado adequadamente com base em sua altitude.
Para executar manualmente o caso de teste CreateKey Block
Registre três dos mesmos retornos de chamada em altitudes 1000, 2000 e 3000.
Defina os retornos de chamada 1000 e 3000 para o modo "monitor". Isso significa que o retorno de chamada não fará nada além de retornar STATUS_SUCCESS.
Defina o retorno de chamada 2000 para o modo "bloquear". Isso significa que o retorno de chamada retornará um erro status.
Crie uma chave e verifique se ela falha.
Cancele o registro dos retornos de chamada.
Verifique se cada retorno de chamada foi invocado adequadamente com base em sua altitude.
Para executar manualmente o caso de teste CreateKey Bypass
Registre três dos mesmos retornos de chamada em altitudes 1000, 2000 e 3000.
Defina os retornos de chamada 1000 e 3000 para o modo "monitor". Isso significa que o retorno de chamada não fará nada além de retornar STATUS_SUCCESS.
Defina o retorno de chamada 2000 para o modo "bypass". Isso significa que o retorno de chamada retornará um STATUS_CALLBACK_BYPASS e executará a operação em nome do registro.
Crie uma chave e verifique se ela foi bem-sucedida.
Cancele o registro dos retornos de chamada.
Verifique se cada retorno de chamada foi invocado adequadamente com base em sua altitude.
Para executar manualmente o caso de teste CreateKey Override Access Denied
Crie uma chave K1 e defina sua DACL (lista de controle de acesso discricionário) para conceder acesso somente leitura.
Crie uma chave em K1. Isso deve falhar devido à DACL somente leitura.
Registre três dos mesmos retornos de chamada em altitudes 1000, 2000 e 3000. STATUS_CALLBACK_BYPASS.
Defina os retornos de chamada 1000 e 3000 para o modo "monitor". Isso significa que o retorno de chamada não fará nada além de retornar STATUS_SUCCESS.
Defina o retorno de chamada 2000 para o modo "bypass de acesso negado". Isso significa que o retorno de chamada executará a operação do modo de usuário, não será bloqueado pela DACL somente leitura e retornará.
Crie uma chave em K1 e verifique se ela foi bem-sucedida.
Cancele o registro dos retornos de chamada.
Verifique se cada retorno de chamada foi invocado adequadamente com base em sua altitude.
Para executar manualmente o caso de teste CreateKey Override Block
Registre quatro dos mesmos retornos de chamada em altitudes 1000, 2000, 3000 e 4000.
Defina os retornos de chamada 1000 e 4000 para o modo "monitor". Isso significa que o retorno de chamada não fará nada além de retornar STATUS_SUCCESS.
Defina o retorno de chamada 2000 para o modo "bloquear". Isso significa que o retorno de chamada retornará STATUS_UNSUCCESSFUL.
Defina o retorno de chamada 3000 para o modo "substituir falha". Isso significa que, se o retorno de chamada identificar STATUS_UNSUCCESSFUL no retorno de chamada pós-operação, ele ainda executará a operação e retornará o êxito.
Crie uma chave e verifique se ela é bem-sucedida.
Cancele o registro dos retornos de chamada.
Verifique se cada retorno de chamada foi invocado adequadamente com base em sua altitude.
Para executar manualmente o caso de teste SetKeySecurity Bypass
Registre três dos mesmos retornos de chamada em altitudes 1000, 2000 e 3000.
Defina os retornos de chamada 1000 e 3000 para o modo "monitor". Isso significa que o retorno de chamada não fará nada além de retornar STATUS_SUCCESS.
Defina o retorno de chamada 2000 para o modo "bypass". Isso significa que o retorno de chamada retornará STATUS_CALLBACK_BYPASS e executará a operação em nome do registro.
Chame RegSetKeySecurity para definir o descritor de segurança de uma chave e verifique se ela foi bem-sucedida.
Cancele o registro dos retornos de chamada.
Verifique se cada retorno de chamada foi invocado adequadamente com base em sua altitude.
Para executar manualmente o caso de teste Transacted CreateKey Bypass
Crie uma transação T1.
Crie uma chave no contexto da transação T1.
Verifique se a chave foi bem-sucedida e exclua-a.
Registre três dos mesmos retornos de chamada em altitudes 1000, 2000 e 3000.
Defina os retornos de chamada 1000 e 3000 para o modo "monitor". Isso significa que o retorno de chamada não fará nada além de retornar STATUS_SUCCESS.
Defina o retorno de chamada 2000 para o modo "bypass". Isso significa que o retorno de chamada retornará STATUS_CALLBACK_BYPASS e executará a operação em nome do registro.
Crie uma chave no contexto da transação T1 e verifique se ela é bem-sucedida.
Confirme a transação.
Cancele o registro dos retornos de chamada.
Para executar manualmente o caso de teste Transacted CreateKey Bypass (Sem Confirmação)
- Conclua as mesmas etapas que no caso de teste Transacted CreateKey Bypass, mas não confirme a transação no final.
Para executar manualmente o caso de teste Cancelar registro de corrida de fechamento
Inicie um thread que abra uma chave de teste e feche o identificador em um loop.
No thread original, registre e cancele o registro de um retorno de chamada 100 vezes.
Sinalize o outro thread para sair.
Para executar manualmente o caso de teste Salvar Restauração Substituir
Crie uma chave no hive de software.
Registre um retorno de chamada na altitude 1000 e defina-o como modo "monitor". Isso significa que o retorno de chamada não fará nada além de retornar STATUS_SUCCESS.
Chame RegSaveKey na chave criada e verifique se ela foi bem-sucedida.
Chame RegRestoreKey na chave criada usando o arquivo hive que RegSaveKey criou e verifique se ele foi bem-sucedido.
Faça uma cópia do arquivo hive.
Carregue o arquivo hive original em HKEY_LOCAL_MACHINE e verifique se ele foi bem-sucedido.
Chame RegReplaceKey usando a cópia do arquivo hive. Isso deve falhar com uma violação de compartilhamento, mas ainda disparará os retornos de chamada para essa operação.
Cancele o registro do retorno de chamada e verifique se ele foi invocado adequadamente.
Sintaxe de comando
Opção de comando | Descrição |
---|---|
RegCbTestctrl.exe -regr |
Executa o teste. |
Observação
Para obter ajuda de linha de comando para esse binário de teste, digite /h.
Lista de arquivos
Arquivo | Location |
---|---|
RegCbTestCtrl.exe |
[WTT\TestBinRoot]\NTTEST\BASETEST\kernel\cm |
RegCbTest.sys |
[WTT\TestBinRoot]\NTTEST\BASETEST\kernel\cm |
Ntlog.dll |
Parâmetros
Nome do parâmetro | Descrição do parâmetro |
---|---|
LLU_LclAdminUser | LLU para Executar |
LLU_NetAccessOnly | LLU para cópia |