DF – Teste IOCTL do buffer de comprimento zero do Fuzz (Confiabilidade)
Durante o teste de buffer Zero-Length, o teste do Fuzz emite uma série de chamadas para a função DeviceIoControl com comprimentos de buffer de entrada e/ou saída de 0. O teste gera diferentes códigos de controle de E/S usando diferentes códigos de função, tipos de dispositivo, métodos de transferência de dados e requisitos de acesso. Para obter informações sobre o conteúdo dos códigos de controle de E/S, consulte Definindo códigos de controle de E/S.
Para testar a manipulação do driver de ponteiros de buffer inválidos, os ponteiros de buffer nessas chamadas de modo de usuário especificam endereços altos no espaço de endereço virtual do kernel, como 0xFFFFFC00).
O teste do Fuzz executa o teste de buffer Zero-Length em todos os dispositivos abertos durante os testes abertos básicos e adicionais. Você pode personalizar esse teste usando os parâmetros de comando MinFunctionCode e MaxFunctionCode para especificar o intervalo de códigos de função IOCTL usados nas chamadas e MinDeviceType e MaxDeviceType para especificar o intervalo de tipos de dispositivo usados nas chamadas.
- Binário de teste: Devfund_FuzzTest.dll
- Método de teste: DoZeroLengthBufferIOCTLTest
Detalhes do teste
Especificações |
|
Plataformas |
|
Versões com suporte |
|
Tempo de execução esperado (em minutos) | 15 |
Categoria | Cenário |
Tempo limite (em minutos) | 180 |
Requer reinicialização | false |
Requer configuração especial | true |
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 do teste conforme descrito nos requisitos de teste: Pré-requisitos do Teste de Confiabilidade device.fundamentals.
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 específicas para os testes de Conceitos básicos do dispositivo no HLK e no WDK, consulte Documentação adicional de Device.DevFund.
Mais informações
Parâmetros
Nome do parâmetro | Descrição do parâmetro |
---|---|
DQ | Uma consulta SDEL do WDTF usada para identificar os dispositivos de destino – https://go.microsoft.com/fwlink/?LinkId=232678 |
Wpa2PskAesSsid | Obrigatório SOMENTE se o DUT ou um de seus dispositivos filho for um adaptador WiFi. Forneça o SSID de uma rede WiFi AES WPA2 que o teste pode usar para testar o adaptador WiFi. O padrão é 'kitstestssid'. |
Wpa2PskPassword | Obrigatório SOMENTE se o DUT ou um de seus dispositivos filho for um adaptador WiFi. Forneça a senha da rede WiFi AES WPA2 especificada usando o parâmetro Wpa2PskAesSsid. O padrão é 'password'. |
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 nenhum acesso, somente leitura e somente leitura com proteção de página. |
Impersonate | Verdadeiro ou falso. Executa o teste como um usuário não administrativo. |
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 um ponteiro. |
DoPoolCheck | Verdadeiro ou falso. Monitora o uso do driver dos pools de memória do sistema paginados e nãopagados usando marcas de pool e listas lookaside. Essa opção também monitora as alterações no número de exceções tratadas, o que pode indicar erros no tratamento de exceções. |
DoSync | Verdadeiro ou falso. Também abre identificadores de dispositivo no modo SYNC (FILE_SYNCHRONOUS_IO_ALERT). Operações aleatórias de leitura e gravação são ignoradas. |
TestCycles | Número de ciclos de teste. |
DriverVerifierAdditionalDrivers | Drivers adicionais que devem ter o Verificador de Driver habilitado |
DriverVerifierExcludedFlags | Espaço reservado para sinalizadores do Verificador de Driver que podem ser excluídos manualmente para a execução de teste |
WDKDeviceID | ID do dispositivo em teste |
QueryHardwareID | ID de hardware do dispositivo em teste |
WDTFREMOTESYSTEM | Necessário somente se o DUT ou um de seus dispositivos filho for uma NIC com fio que não tenha um endereço de gateway IPv6. Se determinado a ser necessário, forneça um endereço IPv6 que a NIC de teste pode executar ping para testar a E/S da rede. Por exemplo: fe80::78b6:810:9c12:46cd |
DriverVerifierCustomizeConfiguration | Especifica que esse teste pode querer atualizar automaticamente as configurações do Verificador de Driver |
MinDeviceType | Especifica o valor mínimo do campo DeviceType nas IOCTLs. O valor mínimo possível é 0. Use -1 para detecção automática de tipo (preferencial). |
MaxDeviceType | Especifica o valor máximo do campo DeviceType nas IOCTLs. O valor máximo possível é 65535. Use -1 para detecção automática de tipo (preferencial). |
MinFunctionCode | Especifica o valor mínimo do campo FunctionCode nas IOCTLs. O valor mínimo possível é 0. |
MaxFunctionCode | Especifica o valor máximo do campo FunctionCode nas IOCTLs. O valor máximo possível é 4095. |