Compartilhar via


Como selecionar e configurar os testes de Conceitos básicos do dispositivo

O WDK para Windows 8 fornece uma estrutura de teste de driver que inclui um conjunto de testes chamados testes de conceitos básicos do dispositivo. Os testes de Conceitos Básicos do Dispositivo são uma coleção de testes usados internamente na Microsoft para testar os drivers e exemplos de driver fornecidos com o Windows e o WDK e externamente como parte do Programa de Certificação do Windows para Hardware. Você pode executar os testes em seu ambiente de desenvolvimento. Ao executar os testes, você pode usar os mesmos parâmetros usados para testes de Certificação do Windows ou pode configurar e personalizar os parâmetros de tempo de execução de acordo com suas necessidades de teste e depuração.

Aproveitando ao máximo os testes de Conceitos básicos do dispositivo

Para obter o máximo benefício dos testes de Conceitos básicos do dispositivo, seu dispositivo deve ser compatível com os plug-ins de E/S padrão. Para ver se o tipo de dispositivo tem suporte e determinar se há requisitos específicos para teste, consulte Plug-ins de E/S simples do WDTF fornecidos. O teste de Conceitos básicos do dispositivo também inclui um utilitário que você pode usar para testar seu dispositivo para ver se ele é compatível. Se não houver suporte para o dispositivo, você poderá criar um plug-in de E/S simples do WDTF. no Visual Studio. Para obter mais informações, consulte Como personalizar a E/S para seu dispositivo usando o plug-in de ação de E/S simples do WDTF.

Sobre os testes de conceitos básicos do dispositivo

O WDK fornece os testes de Conceitos Básicos do Dispositivo em duas configurações, Básica e Certificação. Em ambas as configurações, você pode editar os parâmetros de teste para variar a duração do teste, o número de ciclos de teste a serem executados e outros parâmetros de teste, dependendo de como você deseja testar os dispositivos ou drivers de destino. A configuração básica destina-se ao teste e depuração geral de driver e dispositivo. Use a configuração básica no início e durante todo o ciclo de desenvolvimento. Os testes na configuração Básica têm as mesmas configurações usadas no teste de Certificação do Windows, com exceção de ter um tempo de execução mais curto. Na configuração de Certificação, os testes têm as mesmas configurações usadas no teste de Certificação do Windows. Use a configuração de Certificação para verificar a prontidão para testar seu dispositivo ou driver para o Programa de Certificação do Windows para Hardware.

Os Testes de Conceitos Básicos do Dispositivo incluem testes nas categorias a seguir.

Configurando os parâmetros de teste de tempo de execução

Você pode editar os parâmetros de tempo de execução para muitos dos testes de conceitos básicos do dispositivo. Na janela Grupo de Teste de Driver, uma seta (») ao lado de um nome de teste indica que o teste tem parâmetros que você pode alterar. Selecione a seta (») para exibir os parâmetros de tempo de execução.

Um dos parâmetros mais úteis é o DQ, que especifica o dispositivo de destino a ser testado. O valor padrão (IsDevice) testa todos os dispositivos no computador de destino. O parâmetro DQ usa uma consulta WDTF SDEL que identifica os dispositivos de destino. Você pode especificar um dispositivo específico para teste, por exemplo:

DeviceID='USB\ROOT_HUB\4&1CD5D022&0' seleciona apenas o dispositivo para teste com o DeviceID especificado.

Para obter mais informações sobre DQ e os outros parâmetros de tempo de execução, consulte Parâmetros de teste de conceitos básicos do dispositivo.

Parâmetros de teste de conceitos básicos do dispositivo

Parâmetro Descrição

DQ

Identifica o dispositivo ou dispositivos que devem ser usados para teste. O parâmetro DQ usa uma consulta WDTFSDEL que identifica os dispositivos de destino. Essa consulta pode ser muito flexível e pode ser usada para expressar qualquer número de dispositivos, de um único dispositivo a todos os dispositivos no sistema.

Exemplos comuns:

Para testar todos os dispositivos que foram instalados com um arquivo INF específico:

INF::FileName=INF_File_Name

Por exemplo, INF::OriginalInfFileName='KMDFTest.inf'

Inf::OriginalInFileName pode ser usado com qualquer INF.

Para testar um dispositivo com uma ID de dispositivo específica:

DeviceId='DeviceId'

Por exemplo, DeviceID='USB\ROOT_HUB\4&1CD5D022&0'

Para testar um dispositivo com uma interface específica:

Interfaces::InterfaceGUID

Para testar um dispositivo com uma letra de driver específica:

Volume::D riverLetter='DriveLetter'

Por exemplo, Volume::D riverLetter='c:\'

Para testar um dispositivo com um driver específico:

DriverBinaryNames=mydriver.sys

Onde KMDFTest.inf é o inf usado para instalar o driver. Você também pode usar o seguinte destino para os dispositivos que usam KMDFTest.sys driver.

(DriverBinaryNames='KMDFTest.sys') funciona.

Depois de definir o SDEL corretamente, você deverá ver a seguinte saída no console ao executar um teste.

WDTF_TARGETS : INFO : - Query("IsDevice AND ((Inf::OriginalInfFileName='KMDFTest.inf'))") WDTF_TARGETS : INFO : Destino: Dispositivo KMDFTest ROOT\SAMPLE\0000 WDTF_TEST : INFO : AVISO: O teste não está impondo que o Verificador de Driver esteja habilitado. WDTF_TEST : INFO : DV está habilitado com Flag:=0x209bb WDTF_TEST : INFO : DV está habilitado com sucesso para todos os drivers deste devnode(UniqueTargetName):=KMDFTest Device ROOT\SAMPLE\0000 WDTF_TARGET : INFO : - GetInterface("Support") WDTF_TARGET : INFO : Target: DESKTOP-2OVFH3G WDTF_TARGETS : INFO : - Query("IsDevice") WDTF_TARGETS : INFO : Target: KMDFTest Device ROOT\SAMPLE\0000 WDTF_TARGETS : INFO : - GetRelations("abaixo-ou-eu/", "IsDevice") WDTF_TARGETS : INFO : Destino: Dispositivo KMDFTest ROOT\SAMPLE\0000 WDTF_TARGETS : INFO : - GetInterfacesIfExist("SimpleIOStressProc") WDTF_SIMPLE_IO : INFO : - Para Target:KMDFTest Device ROOT\SAMPLE\0000 nenhuma interface de E/S simples foi encontrada. WDTF_SIMPLE_IO : INFO : - Para Target:KMDFTest Device ROOT\SAMPLE\0000 WDTF usará a interface de E/S simples ANY.

Consulte arquivos anexados, configuração e arquivos de log para obter mais detalhes. WDTF_TARGETS : INFO : Destino: Dispositivo KMDFTest ROOT\SAMPLE\0000 WDTF_TEST : INFO : Executar 1 ciclo(s) de teste de terminação de E/S WDTF_TEST : INFO : Ciclo de terminação de E/S #1 WDTF_SIMPLEIO_STRESS_PROC : INFO : - StartAsync(KMDFTest Device ROOT\SAMPLE\0000 ) WDTF_SIMPLEIO_STRESS_PROC : INFO : - WaitAsyncCompletion(KMDFTest Device ROOT\SAMPLE\0000 ) WDTF_SIMPLE_IO : INFO : - Para destino: Dispositivo KMDFTest ROOT\SAMPLE\0000 nenhuma interface de E/S simples foi encontrada. WDTF_SIMPLE_IO : INFO : - Para Target:KMDFTest Device ROOT\SAMPLE\0000 WDTF usará a interface de E/S simples ANY. WDTF_SIMPLE_IO : INFO : - Open(KMDFTest Device ROOT\SAMPLE\0000 ) Try count 1 WDTF_SUPPORT : INFO : - WaitForMinutes : 1 WDTF_SIMPLE_IO : INFO : - PerformIO(KMDFTest Device ROOT\SAMPLE\0000 ) Count 1 WDTF_SIMPLEIO_STRESS_PROC : INFO : - Terminate(KMDFTest Device ROOT\SAMPLE\0000 ) process

Para testar todos os dispositivos de uma classe de dispositivo específica:

Por exemplo, Class=CDROM testaria todos os dispositivos da classe CDROM.

Por exemplo, ClassGUID= {36fc9e60-c465-11cf-8056-444553540000} testaria todos os dispositivos cujo GUID de classe corresponde ao GUID especificado. Nesse caso, o GUID é para a classe USB.

DoPoolCheck

Verdadeiro ou falso. Monitora o uso do driver dos pools de memória do sistema paginados e não paginados usando marcas de pool e listas lookaside. Essa opção também monitora as alterações no número de exceções tratadas que podem indicar erros no tratamento de exceções.

ChangeBufferProtectionFlags

Verdadeiro ou falso. Altera os sinalizadores de proteção de memória de buffers passados para o dispositivo testado. Os sinalizadores de proteção de memória alternam entre sem acesso, somente leitura e somente leitura com protetor de página.

DoSimpleIO

Verdadeiro ou falso. Executa SimpleI/O (se encontrado) em dispositivos de teste antes e depois de executar operações PNP.

DoConcurrentIO

Verdadeiro ou falso. Usa a interface de E/S simultânea do WDTF para enviar solicitações de E/S para pilhas de dispositivos de destino durante a execução de operações PnP.

FillZeroPageWithNull

Verdadeiro ou falso. Mapeia a página zero e a preenche com valores NULL. Esse teste identifica drivers que não verificam uma referência de ponteiro antes de desreferenciar o ponteiro.

FuzzTestPeriod

Período de teste de fuzz em minutos.

HPU

Especifica a alta porcentagem de utilização do processador.

Impersonate

Verdadeiro ou falso. Executa o teste como um usuário sem privilégios de administrador.

IOPeriod

Especifica o período de E/S em minutos.

IOTipe

Especifica o tipo de teste de estresse de E/S: SimpleIOStressEx ou SimpleIOStressProc (E/S em um processo separado).

LPU

Especifica a baixa porcentagem de utilização do processador

MaxInBuffer

Especifica o tamanho máximo, em bytes, dos buffers de entrada que o teste passa para o driver em FSCTLs (ou IOCTLs para testes IOCTL).

MinInBuffer

Especifica o tamanho mínimo, em bytes, dos buffers de entrada que o teste passa para o driver em FSCTLs (ou IOCTLs para testes IOCTL).

MaxOutBuffer

Especifica o tamanho máximo, em bytes, dos buffers de saída que o teste passa para o driver em FSCTLs (ou IOCTLs para testes IOCTL).

MinOutBuffer

Especifica o tamanho mínimo, em bytes, dos buffers de saída que o teste passa para o driver em FSCTLs (ou IOCTLs para testes IOCTL).

MaxRandomCalls

Especifica o número máximo de chamadas que o teste emite.

MaxTailoredCalls

Especifica o número máximo de chamadas que o teste emite durante o teste aleatório personalizado.

MaxDeviceType

Especifica o valor máximo do campo DeviceType nos FSCTLs (ou IOCTLs para testes IOCTL). O valor máximo possível é 65535.

MinDeviceType

Especifica o valor mínimo do campo DeviceType nos FSCTLs (ou IOCTLs para testes IOCTL). O valor mínimo possível é 0.

MaxFunctionCode

Especifica o valor máximo do campo FunctionCode nos FSCTLs (ou IOCTLs para testes IOCTL). O valor máximo possível é 4095.

MinFunctionCode

Especifica o valor mínimo do campo FunctionCode nos FSCTLs (ou IOCTLs para testes IOCTL). O valor mínimo possível é 0.

PU

Especifica a porcentagem de utilização do processador

Período de pingue-pongue

Especifica o período de pingue-pongue em minutos; o tempo em que o processador alterna entre os níveis de utilização do processador alto (HPU) e baixo (LPU).

Atraso de Currículo

O tempo de atraso (em segundos) depois que a máquina sai do modo de hibernação e antes do início do próximo ciclo de E/S. O tempo de atraso é necessário para permitir que os dispositivos restaurem seu estado de funcionamento (renovar o endereço IP da placa de rede e assim por diante).

Ciclos de teste

Especifica o número de ciclos de teste (iterações) a serem executados.

WDTFREMOTOSYSTEM

Esse parâmetro será necessário somente se o dispositivo em teste, ou um de seus dispositivos filho, for um adaptador de rede com fio que não tenha um endereço de gateway IPv6. Se esse parâmetro for necessário em sua rede, você deverá fornecer um endereço IPv6 que o adaptador de rede de teste possa executar ping para a rede de teste.

Exemplo: fe80::78b6:810:9c12:46cd

Wpa2PskAesSsid

Esse parâmetro será necessário somente se o dispositivo em teste ou um de seus dispositivos filho for um adaptador WiFi. Forneça o SSID de uma rede WiFi WPA2 AES que o teste pode usar para testar o adaptador WiFi.

Valor padrão: kitstestssid

Wpa2PskPassword

Esse parâmetro será necessário somente se o dispositivo em teste ou um de seus dispositivos filho for um adaptador WiFi. Forneça a senha da rede WiFi WPA2 AES especificada usando o parâmetro Wpa2PskAesSsid.

Valor padrão: password

Testes de utilidade

Teste Descrição

Dispositivos de exibição que têm plug-ins de E/S simples do WDTF

Parâmetros: Nenhum

Dispositivos de exibição que têm o Verificador de Driver habilitado

Parâmetros: Nenhum

Dispositivos de exibição

Parâmetros: Nenhum

Verificador de driver

Teste Descrição

Desativar verificador de driver

Desabilita o Verificador de Driver no computador de teste.

Parâmetros: Nenhum

Habilitar o Verificador de Driver

Você pode usar esse teste para habilitar o Verificador de Driver para todos os drivers de um dispositivo (ou dispositivos) no computador de teste.

Parâmetros: - Consulte Opções do verificador de driver.