Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os seguintes códigos de paragem estão contidos neste conjunto de testes.
Chamada perigosa para TerminateThread.
Causa provávelEssa parada é gerada se um thread (ID de thread é parâmetro1) é encerrado explicitamente usando TerminateThread.Esta função é muito perigosa porque introduz corrupção de dados e deadlocks (de acordo com o MSDN).
Informações exibidas pelo Application Verifier- Parâmetro 1 - Thread ID para o chamador de Terminatethread.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Perigoso
- ID de parada: TERMINATE_THREAD_CALL
- Código de paragem: 0x100
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Potencial estouro de pilha em condições de pouca memória.
Causa provávelEssa parada é gerada se o tamanho inicial da confirmação da pilha de um thread for tal que um estouro de pilha possa ser gerado em condições de pouca memória se a pilha não puder ser estendida.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Não utilizado.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Perigoso
- ID de parada: STACK_OVERFLOW
- Código de paragem: 0x101
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
ExitProcess chamado enquanto vários threads ainda estão em execução.
Causa provávelEssa parada é gerada se um thread chama ExitProcess enquanto há vários threads em execução. Nesse caso, internamente TerminateThread será chamado para cada thread e isso pode criar deadlocks ou corrupções de dados.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Número de threads em execução.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Perigoso
- ID de parada: INVALID_EXIT_PROCESS_CALL
- Código de paragem: 0x102
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
LoadLibrary é chamado durante DllMain.
Causa provávelEssa parada é gerada se o código dentro de DllMain chama LoadLibrary ou FreeLibary. É o comportamento proibido pelo MSDN.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Dll Name (use du to dump).
- Parâmetro 2 - Dll endereço base.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Perigoso
- ID de parada: INVALID_LOAD_LIBRARY_CALL
- Código de paragem: 0x103
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
FreeLibrary é chamado durante DllMain.
Causa provávelEssa parada é gerada se o código dentro de DllMain chama LoadLibrary ou FreeLibary. É o comportamento proibido pelo MSDN.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Dll Name (use du to dump).
- Parâmetro 2 - Dll endereço base.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Perigoso
- ID de parada: INVALID_FREE_LIBRARY_CALL
- Código de paragem: 0x104
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
SetProcessWorkingSetSize é chamado com MinimumWorkingSetSize = 0xFFFFFFFF.
Causa provávelUse MinimumWorkingSetSize = (SIZE_T) -1.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Não utilizado.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Perigoso
- ID de parada: INVALID_MINIMUM_PROCESS_WORKING_SIZE
- Código de paragem: 0x105
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
SetProcessWorkingSetSize é chamado com MaximumWorkingSetSize = 0xFFFFFFFF.
Causa provávelUse MaximumWorkingSetSize = (SIZE_T) -1.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Não utilizado.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Perigoso
- ID de parada: INVALID_MAXIMUM_PROCESS_WORKING_SIZE
- Código de paragem: 0x106
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
SetProcessWorkingSetSizeEx é chamado com MinimumWorkingSetSize = 0xFFFFFFFF.
Causa provávelUse MinimumWorkingSetSize = (SIZE_T) -1.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Não utilizado.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Perigoso
- ID de parada: INVALID_MINIMUM_PROCESS_WORKING_SIZE_EX
- Código de paragem: 0x107
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
SetProcessWorkingSetSizeEx é chamado com MaximumWorkingSetSize = 0xFFFFFFFF.
Causa provávelUse MaximumWorkingSetSize = (SIZE_T) -1.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Não utilizado.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Perigoso
- ID de parada: INVALID_MAXIMUM_PROCESS_WORKING_SIZE_EX
- Código de paragem: 0x108
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
O thread não pode possuir uma seção crítica.
Causa provávelEssa parada é gerada se um thread (ID de thread é parâmetro1) é encerrado, suspenso ou está em um estado (thread de trabalho terminou um item de trabalho) no qual ele não pode manter uma seção crítica. O fio condutor atual é o culpado. Para depurar essa parada, use os seguintes comandos do depurador:
- KB - para obter o rastreamento de pilha atual. Se o thread atual for o proprietário da seção crítica, provavelmente está chamando ExitThread. O thread atual deveria ter liberado a seção crítica antes de sair. Se o thread atual estiver chamando TerminateThread ou SuspendThread, ele não deve fazer isso para um thread que contém uma seção crítica.
- !cs -s <parameter> - despeje informações sobre esta seção crítica.
- ln <parameter2> - para mostrar símbolos perto do endereço da seção crítica. Isso deve ajudar a identificar a seção crítica vazada.
- dps <parameter4> - para despejar o rastreamento de pilha para esta inicialização de seção crítica.
- Parâmetro 1 - ID do tópico.
- Parâmetro 2 - Endereço da secção crítica.
- Parâmetro 3 - Endereço de informações de depuração de seção crítica.
- Parâmetro 4 - Rastreamento de pilha de inicialização de seção crítica.
- Camada de teste: Fechaduras
- ID de parada: EXIT_THREAD_OWNS_LOCK
- Código de paragem: 0x200
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Descarregando DLL contendo uma seção crítica ativa.
Causa provávelEssa parada é gerada se uma DLL tiver uma variável global contendo uma seção crítica e a DLL for descarregada, mas a seção crítica não tiver sido excluída. Para depurar essa parada, use os seguintes comandos do depurador:
- du <parameter3> - para despejar o nome da DLL culpada.
- .reload dllname ou .reload dllname = <parameter4> - para recarregar os símbolos dessa DLL.
- !cs -s <parameter1> - despeje informações sobre esta seção crítica.
- ln <parameter1> - para mostrar símbolos perto do endereço da seção crítica. Isso deve ajudar a identificar a seção crítica vazada.
- dps <parameter2> - para despejar o rastreamento de pilha para essa inicialização de seção crítica.
- Parâmetro 1 - Endereço da secção crítica.
- Parâmetro 2 - Rastreamento de pilha de inicialização de seção crítica.
- Parâmetro 3 - DLL nome endereço.
- Parâmetro 4 - DLL endereço base.
- Camada de teste: Fechaduras
- ID de parada: LOCK_IN_UNLOADED_DLL
- Código de paragem: 0x201
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Bloco de pilha de liberação contendo uma seção crítica ativa.
Causa provávelEssa parada é gerada se uma alocação de pilha contiver uma seção crítica, a alocação for liberada e a seção crítica não tiver sido excluída. Para depurar essa parada, use os seguintes comandos do depurador:
- !cs -s <parameter1> - despeje informações sobre esta seção crítica.
- ln <parameter1> - para mostrar símbolos perto do endereço da seção crítica. Isso deve ajudar a identificar a seção crítica vazada.
- dps <parameter2> - para despejar o rastreamento de pilha para essa inicialização de seção crítica.
- < parameter3> e <parameter4> podem ajudar a entender onde esse bloco de heap foi alocado (o tamanho da alocação é provavelmente significativo).
- Parâmetro 1 - Endereço da secção crítica.
- Parâmetro 2 - Rastreamento de pilha de inicialização de seção crítica.
- Parâmetro 3 - Endereço do bloco de pilha.
- Parâmetro 4 - Tamanho do bloco da pilha.
- Camada de teste: Fechaduras
- ID de parada: LOCK_IN_FREED_HEAP
- Código de paragem: 0x202
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Seção crítica inicializada ou corrompida duplamente.
Causa provávelNormalmente, essa parada é gerada se uma seção crítica tiver sido inicializada mais de uma vez. Neste caso, parameter3 e parameter4 são os endereços de rastreamento de pilha para duas dessas inicializações. Algumas outras vezes é possível obter essa parada se a seção crítica ou sua estrutura de informações de depuração tiver sido corrompida. Neste segundo caso, é possível que o parâmetro3 e o parâmetro4 sejam inválidos e inúteis. Para depurar essa parada:
- !cs -s -d <parameter2> - despeje informações sobre esta seção crítica.
- ln <parameter1> - para mostrar símbolos perto do endereço da seção crítica. Isso pode ajudar a identificar a seção crítica se esta for uma variável global.
- dps <parameter3> e dps parameter4> - para identificar os dois caminhos de < código para inicializar esta seção crítica.
- Parâmetro 1 - Endereço da secção crítica.
- Parâmetro 2 - Endereço da estrutura de informações de depuração encontrada na lista ativa.
- Parâmetro 3 - Primeiro rastreamento de pilha de inicialização.
- Parâmetro 4 - Segundo rastreamento de pilha de inicialização.
- Camada de teste: Fechaduras
- ID de parada: LOCK_DOUBLE_INITIALIZE
- Código de paragem: 0x203
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Memória livre contendo uma seção crítica ativa.
Causa provávelEssa parada é gerada se a memória que contém uma seção crítica foi liberada, mas a seção crítica não foi excluída usando DeleteCriticalSection. Para depurar essa parada, use os seguintes comandos do depurador:
- !cs -s -d <parameter2> - despeje informações sobre esta seção crítica.
- dps <parameter3> - para identificar o caminho do código para inicializar esta seção crítica.
Na maioria dos casos, o verificador de bloqueio deteta imediatamente seções críticas vazadas contidas em uma alocação de heap, um intervalo de DLL, uma alocação de memória virtual ou um intervalo de memória mapeada MapViewOfFile e emite diferentes paradas nesses casos. Portanto, restam muito poucos casos para esta paragem do verificador. O bloqueio deve estar em um intervalo de memória liberado pelo código de modo kernel ou liberado por processos cruzados por APIs como VirtualFreeEx. Normalmente, essa parada será encontrada se uma parada anterior (por exemplo, LOCK_IN_FREED_HEAP ou LOCK_IN_UNLOADED_DLL) foi continuada pressionando 'g' no console do depurador.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço da secção crítica.
- Parâmetro 2 - Endereço de informações de depuração de seção crítica.
- Parâmetro 3 - Rastreamento de pilha de inicialização de seção crítica.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Fechaduras
- ID de parada: LOCK_IN_FREED_MEMORY
- Código de paragem: 0x204
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Seção crítica corrompida.
Causa provávelEssa parada é gerada se o campo DebugInfo da seção crítica estiver apontando para a memória liberada. Normalmente, outra estrutura DebugInfo válida é encontrada na lista de seções críticas ativas. Sem corrupção, os dois ponteiros devem ser idênticos. Para depurar essa parada, use os seguintes comandos do depurador:
- !cs -s -d <parameter3> - despeje informações sobre esta seção crítica com base no conteúdo atual da estrutura de informações de depuração encontrada na lista ativa (essa estrutura raramente é corrompida, então geralmente essas informações são confiáveis).
- !cs -s <parameter1> - despeje informações sobre esta seção crítica com base no conteúdo atual da estrutura da seção crítica (a estrutura já está corrompida, então às vezes essas informações NÃO são confiáveis).
- dps <parameter4> - para identificar o caminho do código para inicializar esta seção crítica. Despeje a seção crítica no parâmetro address1 e procure o padrão de corrupção. Com bons símbolos para ntdll.dl você pode usar os seguintes comandos:
- dt ntdll!_RTL_CRITICAL_SECTION LOCK_ADDRESS
- DT NTDLL!_RTL_CRITICAL_SECTION_DEBUG DEBUG_ADDRESS
- Parâmetro 1 - Endereço da secção crítica.
- Parâmetro 2 - Endereço de informações de depuração inválido desta seção crítica.
- Parâmetro 3 - Endereço das informações de depuração encontradas na lista ativa.
- Parâmetro 4 - Rastreamento da pilha de inicialização.
- Camada de teste: Fechaduras
- ID de parada: LOCK_CORRUPTED
- Código de paragem: 0x205
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Thread de proprietário de seção crítica inválido.
Causa provávelEssa parada é gerada se o ID do thread do proprietário for inválido no contexto atual. Para depurar essa parada:
- !cs -s <parameter1> - despeje informações sobre esta seção crítica.
- ln <parameter1> - para mostrar símbolos perto do endereço da seção crítica. Isso deve ajudar a identificar a seção crítica.
- Parâmetro 1 - Endereço da secção crítica.
- Parâmetro 2 - Possuir linha.
- Parâmetro 3 - Thread de propriedade esperado.
- Parâmetro 4 - Seção crítica debug info address.
- Camada de teste: Fechaduras
- ID de parada: LOCK_INVALID_OWNER
- Código de paragem: 0x206
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Contagem de recursão de seção crítica inválida.
Causa provávelEssa parada é gerada se o campo de contagem de recursão da estrutura de seção crítica for inválido no contexto atual. Para depurar essa parada:
- !cs -s <parameter1> - despeje informações sobre esta seção crítica.
- ln <parameter1> - para mostrar símbolos perto do endereço da seção crítica. Isso deve ajudar a identificar a seção crítica.
- Parâmetro 1 - Endereço da secção crítica.
- Parâmetro 2 - Contagem de recursão.
- Parâmetro 3 - Contagem de recursões esperada.
- Parâmetro 4 - Seção crítica debug info address.
- Camada de teste: Fechaduras
- ID de parada: LOCK_INVALID_RECURSION_COUNT
- Código de paragem: 0x207
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Exclusão de seção crítica com contagem de bloqueio inválida.
Causa provávelEssa parada é gerada se uma seção crítica for de propriedade de um thread, se ela for excluída ou se a seção crítica não for inicializada. Para depurar essa parada:
- !cs -s <parameter1> - despeje informações sobre esta seção crítica. Se o thread proprietário for 0, a seção crítica não foi inicializada.
- ln <parameter1> - para mostrar símbolos perto do endereço da seção crítica. Isso deve ajudar a identificar a seção crítica.
- Parâmetro 1 - Endereço da secção crítica.
- Parâmetro 2 - Contagem de bloqueios.
- Parâmetro 3 - Contagem de bloqueio esperada.
- Parâmetro 4 - Possuir linha.
- Camada de teste: Fechaduras
- ID de parada: LOCK_INVALID_LOCK_COUNT
- Código de paragem: 0x208
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Seção crítica superliberada ou corrompida.
Causa provávelEssa parada é gerada se uma seção crítica for liberada mais vezes do que o thread atual a adquiriu. Para depurar essa parada:
- !cs -s <parameter1> - despeje informações sobre esta seção crítica.
- !cs -s -d <parameter4> - despeje informações sobre esta seção crítica.
- ln <parameter1> - para mostrar símbolos perto do endereço da seção crítica. Isso deve ajudar a identificar a seção crítica.
- Parâmetro 1 - Endereço da secção crítica.
- Parâmetro 2 - Contagem de bloqueios.
- Parâmetro 3 - Contagem de bloqueio esperada.
- Parâmetro 4 - Seção crítica debug info address.
- Camada de teste: Fechaduras
- ID de parada: LOCK_OVER_RELEASED
- Código de paragem: 0x209
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Seção crítica não inicializada.
Causa provávelEssa parada é gerada se uma seção crítica for usada sem ser inicializada ou depois de ter sido excluída. Para depurar essa parada:
- ln <parameter1> - para mostrar símbolos perto do endereço da seção crítica. Isso deve ajudar a identificar a seção crítica.
- Parâmetro 1 - Endereço da secção crítica.
- Parâmetro 2 - Seção crítica debug info address.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Fechaduras
- ID de parada: LOCK_NOT_INITIALIZED
- Código de paragem: 0x210
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
A seção crítica já foi inicializada.
Causa provávelEssa parada é gerada se uma seção crítica for reinicializada pelo thread atual. Para depurar essa parada:
- !cs -s <parameter1> ou !cs -s -d parameter2 - despeje informações sobre esta seção crítica.
- ln <parameter1> - para mostrar símbolos perto do endereço da seção crítica. Isso pode ajudar a identificar a seção crítica se esta for uma variável global.
- dps <parameter3> - para identificar o caminho de código para a primeira inicialização desta seção crítica.
- KB - para exibir o rastreamento de pilha atual, que está reinicializando esta seção crítica.
- Parâmetro 1 - Endereço da secção crítica.
- Parâmetro 2 - Seção crítica debug info address.
- Parâmetro 3 - Primeiro rastreamento de pilha de inicialização. Use dps para despejá-lo se não-NULL
- Parâmetro 4 - Não utilizado.
- Camada de teste: Fechaduras
- ID de parada: LOCK_ALREADY_INITIALIZED
- Código de paragem: 0x211
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Liberação de memória virtual contendo uma seção crítica ativa.
Causa provávelEssa parada é gerada se o thread atual estiver chamando VirtualFree em um bloco de memória que contém uma seção crítica ativa. O aplicativo deve chamar DeleteCriticalSection nesta seção crítica antes de liberar essa memória.
- kb - para exibir o rastreamento de pilha atual, que está chamando VirtualFree. O provável culpado é a DLL que chama VirtualFree.
- !cs -s <parameter1> - despeje informações sobre esta seção crítica.
- dps <parameter2> - para identificar o caminho do código para a inicialização desta seção crítica.
- Parâmetro 1 - Endereço da secção crítica.
- Parâmetro 2 - Rastreamento de pilha de inicialização de seção crítica.
- Parâmetro 3 - Endereço do bloco de memória.
- Parâmetro 4 - Tamanho do bloco de memória.
- Camada de teste: Fechaduras
- ID de parada: LOCK_IN_FREED_VMEM
- Código de paragem: 0x212
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Desmapeando a região da memória que contém uma seção crítica ativa.
Causa provávelEssa parada é gerada se o thread atual estiver chamando UnmapViewOfFile em um bloco de memória que contém uma seção crítica ativa. O aplicativo deve chamar DeleteCriticalSection nesta seção crítica antes de desmapear essa memória.
- kb - para exibir o rastreamento de pilha atual, que está chamando UnmapViewOfFile . O provável culpado é a DLL que chama UnmapViewOfFile.
- !cs -s <parameter1> - despeje informações sobre esta seção crítica.
- dps <parameter2> - para identificar o caminho do código para a inicialização desta seção crítica.
- Parâmetro 1 - Endereço da secção crítica.
- Parâmetro 2 - Rastreamento de pilha de inicialização de seção crítica.
- Parâmetro 3 - Endereço do bloco de memória.
- Parâmetro 4 - Tamanho do bloco de memória.
- Camada de teste: Fechaduras
- ID de parada: LOCK_IN_UNMAPPED_MEM
- Código de paragem: 0x213
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
O thread atual não possui nenhuma seção crítica.
Causa provávelEssa parada é gerada se o thread atual estiver chamando LeaveCriticalSection mas, de acordo com a contabilidade do verificador interno, ele não possui nenhuma seção crítica. Se o parâmetro2 for zero, provavelmente este é um bug no thread atual. Ele tenta deixar uma seção crítica que não entrou, ou talvez esteja chamando LeaveCriticalSection mais vezes do que chamou EnterCriticalSection para a mesma seção crítica. Se o parâmetro2 não for zero (é um número inteiro negativo), as estruturas de dados do verificador interno provavelmente estão corrompidas.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço da secção crítica.
- Parâmetro 2 - Número de seções críticas de propriedade do thread atual.
- Parâmetro 3 - Não utilizado
- Parâmetro 4 - Não utilizado
- Camada de teste: Fechaduras
- ID de parada: THREAD_NOT_LOCK_OWNER
- Código de paragem: 0x214
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Usando a seção crítica que é privada para outra DLL.
Causa provávelEssa parada é gerada se o thread atual tenta usar um bloqueio privado que vive dentro de outra DLL. Por exemplo, a.dll tenta inserir uma seção crítica definida dentro ntdll.dll. Os bloqueios privados não podem ser usados em DLLs.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço da secção crítica.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado
- Parâmetro 4 - Não utilizado
- Camada de teste: Fechaduras
- ID de parada: LOCK_PRIVATE
- Código de paragem: 0x215
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
O SRW Lock não foi inicializado.
Causa provávelEssa parada é gerada se um thread estiver tentando usar o bloqueio SRW (Param1) que não foi inicializado. Para depurar, use 'kb' para obter o rastreamento de pilha atual. É aqui que o bloqueio SRW está a ser utilizado. O bloqueio SRW deve ser inicializado usando InitializeSRWLock antes de poder ser usado.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Bloqueio SRW
- Parâmetro 2 - Não utilizado
- Parâmetro 3 - Não utilizado
- Parâmetro 4 - Não utilizado
- Camada de teste: SRWLock
- ID de parada: NOT_INITIALIZED
- Código de paragem: 0x250
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
O SRW Lock já foi inicializado.
Causa provávelEssa parada é gerada se o bloqueio SRW (Param1) estiver sendo reinicializado. Se o bloqueio SRW estiver sendo usado ativamente por outros threads, reinicializar o bloqueio resultará em um comportamento imprevisível pelo aplicativo, incluindo travamentos e falhas. O rastreamento da pilha de inicialização pode mostrar uma aquisição se o bloqueio SRW foi inicializado estaticamente.
- KB - para obter o rastreamento de pilha atual. É aqui que o bloqueio SRW está sendo reinicializado.
- dps <parameter3> - para obter o rastreamento da pilha de inicialização do bloqueio SRW. Esse rastreamento de pilha pode mostrar uma aquisição se o bloqueio foi inicializado estaticamente.
- Parâmetro 1 - Bloqueio SRW
- Parâmetro 2 - ThreadId do thread que inicializou o bloqueio SRW.
- Parâmetro 3 - Endereço do rastreamento da pilha de inicialização. Use o endereço> dps <para ver onde o bloqueio SRW foi inicializado.
- Parâmetro 4 - Não utilizado
- Camada de teste: SRWLock
- ID de parada: ALREADY_INITIALIZED
- Código de paragem: 0x251
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Acquire-Release incompatíveis no bloqueio SRW.
Causa provávelEssa parada é gerada se o bloqueio SRW (Param1) estiver sendo liberado com uma API de liberação errada. Se o bloqueio SRW foi adquirido para acesso compartilhado e está sendo liberado usando a API de liberação exclusiva ou o bloqueio SRW foi adquirido para acesso exclusivo e está sendo liberado usando a API de liberação compartilhada. Isso pode resultar em um comportamento imprevisível pelo aplicativo, incluindo travamentos e falhas.
- KB - para obter o rastreamento de pilha atual. É aqui que o bloqueio SRW está sendo liberado usando a API errada.
- dps <parameter3> - para obter o bloqueio SRW adquira o rastreamento de pilha.
- Parâmetro 1 - Bloqueio SRW
- Parâmetro 2 - ThreadId do thread que adquiriu o bloqueio SRW.
- Parâmetro 3 - Endereço do rastreamento de pilha de aquisição. Use o endereço> dps <para ver onde o bloqueio SRW foi adquirido.
- Parâmetro 4 - Não utilizado
- Camada de teste: SRWLock
- ID de parada: MISMATCHED_ACQUIRE_RELEASE
- Código de paragem: 0x252
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
O bloqueio SRW está sendo adquirido recursivamente pelo mesmo thread.
Causa provávelEssa parada é gerada se o bloqueio SRW (Param1) estiver sendo adquirido recursivamente pelo mesmo thread. Isso resultará em um impasse e o thread será bloqueado indefinidamente. A aquisição recursiva de um bloqueio SRW no modo exclusivo causará um impasse. A aquisição recursiva de um bloqueio SRW no modo compartilhado causará um impasse quando houver um thread aguardando acesso exclusivo. Considere o exemplo abaixo: - Thread A adquire o bloqueio SRW no modo compartilhado - Thread B tenta acruire o bloqueio SRW no modo exclusivo e espera - Thread A tenta adquirir o bloqueio SRW no modo compartilhado recursivamente. Isso será bem-sucedido desde que não haja garçom exclusivo (neste caso B). Como os bloqueios SRW não têm inanição de gravador, o thread A aguarda atrás do thread B. Agora, o Thread B está esperando pelo Thread A, que está esperando pelo Thread B, causando uma espera circular e, portanto, um impasse.
- KB - para obter o rastreamento de pilha atual. É aqui que o bloqueio SRW está sendo adquirido recursivamente.
- dps <parameter2> - para obter o rastreamento de pilha para a primeira aquisição.
- Parâmetro 1 - Bloqueio SRW
- Parâmetro 2 - Endereço do primeiro rastreamento de pilha de aquisição. Use o endereço> dps <para ver onde o bloqueio SRW foi adquirido.
- Parâmetro 3 - Não utilizado
- Parâmetro 4 - Não utilizado
- Camada de teste: SRWLock
- ID de parada: RECURSIVE_ACQUIRE
- Código de paragem: 0x253
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
O thread que está saindo ou sendo encerrado possui um bloqueio SRW.
Causa provávelEssa parada é gerada se o thread (Param2) que possui o bloqueio SRW (Param1) estiver saindo ou sendo encerrado. Isso resultará em um bloqueio SRW órfão e os threads que tentam adquirir esse bloqueio bloqueariam indefinidamente.
- KB - para obter o rastreamento de pilha atual. É aqui que o thread está saindo ou sendo encerrado.
- dps <parameter3> - para obter o bloqueio SRW adquira o rastreamento de pilha.
- Parâmetro 1 - Bloqueio SRW
- Parâmetro 2 - ThreadId do thread que está saindo ou sendo encerrado.
- Parâmetro 3 - Endereço do rastreamento de pilha de aquisição. Use o endereço> dps <para ver onde o bloqueio SRW foi adquirido.
- Parâmetro 4 - Não utilizado
- Camada de teste: SRWLock
- ID de parada: EXIT_THREAD_OWNS_LOCK
- Código de paragem: 0x254
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
O bloqueio SRW que está sendo liberado não foi adquirido por este thread.
Causa provávelEssa parada é gerada se o bloqueio SRW (Param1) estiver sendo liberado pelo thread (Param2) que não adquiriu o bloqueio. Isso representa uma má prática de programação que é difícil de acertar e pode levar a um comportamento imprevisível pelo aplicativo.
- KB - para obter o rastreamento de pilha atual. É aqui que o thread está liberando o bloqueio SRW que não adquiriu.
- dps <parameter4> - para obter o bloqueio SRW adquira o rastreamento de pilha.
- Parâmetro 1 - Bloqueio SRW
- Parâmetro 2 - ThreadId atual.
- Parâmetro 3 - ThreadId do thread que adquiriu o bloqueio SRW.
- Parâmetro 4 - Endereço do rastreamento de pilha de aquisição. Use o endereço> dps <para ver onde o bloqueio SRW foi adquirido.
- Camada de teste: SRWLock
- ID de parada: INVALID_OWNER
- Código de paragem: 0x255
- Gravidade: Advertência
- Erro único:
- Relatório de erros: Nenhum
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
A memória que está sendo liberada contém um bloqueio SRW ativo.
Causa provávelEssa parada é gerada se o endereço de memória (Param1) que está sendo liberado contiver um bloqueio SRW ativo que ainda está em uso. Isso pode resultar em um comportamento imprevisível pelo aplicativo, incluindo falhas e travamentos.
- KB - para obter o rastreamento de pilha atual. É aqui que está a ser libertada a memória que contém um bloqueio SRW ativo.
- dps <parameter4> - para obter o bloqueio SRW adquira o rastreamento de pilha.
- Parâmetro 1 - Bloqueio SRW
- Parâmetro 2 - Endereço da memória que está sendo liberada.
- Parâmetro 3 - ThreadId do thread que adquiriu o bloqueio SRW.
- Parâmetro 4 - Endereço do rastreamento de pilha de aquisição. Use o endereço> dps <para ver onde o bloqueio SRW foi adquirido.
- Camada de teste: SRWLock
- ID de parada: IN_FREED_MEMORY
- Código de paragem: 0x256
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
A DLL que está sendo descarregada contém um bloqueio SRW ativo.
Causa provávelEssa parada é gerada se a DLL que está sendo descarregada (Param2) contém um bloqueio SRW ativo (Param1) que ainda está em uso. Isso pode resultar em um comportamento imprevisível pelo aplicativo, incluindo falhas e travamentos.
- KB - para obter o rastreamento de pilha atual. É aqui que a DLL está sendo descarregada que contém um bloqueio SRW ativo.
- du <parameter2> - para localizar o nome da DLL que está sendo descarregada.
- dps <parameter4> - para obter o bloqueio SRW adquira o rastreamento de pilha.
- Parâmetro 1 - Bloqueio SRW
- Parâmetro 2 - Endereço do nome da DLL que está sendo descarregada. Use du <address> para ver o nome.
- Parâmetro 3 - ThreadId do thread que adquiriu o bloqueio SRW.
- Parâmetro 4 - Endereço do rastreamento de pilha de aquisição. Use o endereço> dps <para ver onde o bloqueio SRW foi adquirido.
- Camada de teste: SRWLock
- ID de parada: IN_UNLOADED_DLL
- Código de paragem: 0x257
- Gravidade: Advertência
- Erro único:
- Relatório de erros: Nenhum
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
O bloqueio SRW está sendo adquirido no caminho de desligamento, o que pode resultar em um travamento.
Causa provávelEssa parada é gerada se um bloqueio SRW (Param1) estiver sendo adquirido em um caminho de desligamento. Os bloqueios SRW não são compatíveis com o desligamento. Tentar adquirir um bloqueio SRW que tenha ficado órfão (devido ao desligamento do processo ou algum outro motivo) resultará em um travamento. Chamar ConditionVariableSRW em um caminho de desligamento também pode fazer com que esse verificador pare à medida que o bloqueio é liberado e adquirido durante essa chamada. Para depurar essa parada:
- KB - para obter o rastreamento de pilha atual. É aqui que o bloqueio SRW está sendo adquirido em um caminho de desligamento.
- Parâmetro 1 - Bloqueio SRW
- Parâmetro 2 - Não utilizado
- Parâmetro 3 - Não utilizado
- Parâmetro 4 - Não utilizado
- Camada de teste: SRWLock
- ID de parada: ACQUIRE_ON_SHUTDOWN_PATH
- Código de paragem: 0x258
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Exceção de identificador inválida para rastreamento de pilha atual.
Causa provávelEssa parada é gerada se a função na parte superior da pilha passou um identificador inválido para as rotinas do sistema. Normalmente, um simples comando kb revelará qual é o valor do identificador passado (deve ser um dos parâmetros - geralmente o primeiro). Se o valor é nulo, então isso está claramente errado. Se o valor parecer ok, você precisará usar a extensão do depurador !htrace para obter um histórico de operações pertencentes a esse valor de identificador. Na maioria dos casos, deve ser que o valor do identificador seja usado depois de ser fechado.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Código de exceção.
- Parâmetro 2 - Registo de exceção. Use .exr para exibi-lo.
- Parâmetro 3 - Registo de contexto. Use .cxr para exibi-lo.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Pegas
- ID de parada: INVALID_HANDLE
- Código de paragem: 0x300
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Índice TLS inválido usado para rastreamento de pilha atual.
Causa provávelEssa parada é gerada se a função na parte superior da pilha passou um índice TLS inválido para as rotinas do sistema TLS. Normalmente, um simples comando kb revelará o que está errado. O bug típico aqui é assumir um determinado valor para um índice TLS em vez de chamar TlsAlloc. Isso pode acontecer pensando que você sempre obtém o valor N, portanto, não há necessidade de chamar TlsAlloc ou mais frequentemente devido a uma variável não inicializada.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Índice TLS inválido.
- Parâmetro 2 - Espera-se menor parte do índice.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Pegas
- ID de parada: INVALID_TLS_VALUE
- Código de paragem: 0x301
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Parâmetros inválidos para chamada WaitForMultipleObjects.
Causa provávelEssa parada é gerada se a função na parte superior da pilha chamada WaitForMultipleObjects com NULL como o endereço da matriz de identificadores para aguardar ou com zero como o número de alças. Um simples comando kb revelará a função que chama essa API incorretamente.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço do vetor de alças de objetos.
- Parâmetro 2 - Número de alças.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Pegas
- ID de parada: INCORRECT_WAIT_CALL
- Código de paragem: 0x302
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
NULL identificador passado como parâmetro. Deve ser utilizada uma alça válida.
Causa provávelEssa parada é gerada se a função na parte superior da pilha passou um identificador NULL para as rotinas do sistema.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Não utilizado.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Pegas
- ID de parada: NULL_HANDLE
- Código de paragem: 0x303
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Aguardando em um identificador de thread em DllMain.
Causa provávelEssa parada é gerada se o thread atual estiver executando código dentro da função DllMain de uma das DLLs carregadas no processo atual e chamar WaitForSingleObject ou WaitForMultipleObjects para aguardar em um identificador de thread no mesmo processo. Isso provavelmente levaria a um impasse porque o identificador de thread não será sinalizado, a menos que esse segundo thread esteja saindo. Quando o segundo thread chamará ExitThread, ele tentará adquirir o bloqueio do carregador DLL e, em seguida, chamará DllMain (DLL_THREAD_DETACH) para todas as DLLs no processo atual. Mas o bloqueio do carregador é de propriedade do primeiro thread (aquele que está aguardando na alça do thread), então os dois threads serão bloqueados.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Alça de rosca.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Pegas
- ID de parada: WAIT_IN_DLLMAIN
- Código de paragem: 0x304
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Tipo de objeto incorreto para handle.
Causa provávelEssa parada é gerada se o thread atual estiver chamando uma API com um identificador para um objeto com um tipo de objeto incorreto. Por exemplo, chamar SetEvent com um identificador de semáforo como parâmetro gerará essa parada. Para depurar essa parada:
- KB - para exibir o rastreamento de pilha atual. O culpado é provavelmente a DLL que está chamando verifier.dll;
- du <parameter2> - para exibir o tipo real da alça. O valor do identificador é parameter1. No exemplo acima, isso exibirá: "Semaphore".
- du <parameter3> - para exibir o tipo de objeto esperado pela API. No exemplo acima, este nome será: "Evento".
- O parâmetro !htrace1>< pode ser útil porque exibirá o rastreamento de pilha para as operações recentes de abrir/fechar nessa alça.
- Parâmetro 1 - Manipular valor.
- Parâmetro 2 - Nome do tipo de objeto. Use du para exibi-lo
- Parâmetro 3 - Nome do tipo de objeto esperado. Use du para exibi-lo
- Parâmetro 4 - Não utilizado.
- Camada de teste: Pegas
- ID de parada: INCORRECT_OBJECT_TYPE
- Código de paragem: 0x305
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Descarregando DLL que alocou o índice TLS que não foi liberado.
Causa provávelEssa parada é gerada se uma DLL que alocou um índice TLS estiver sendo descarregada antes de liberar esse índice TLS. Para depurar essa parada:
- du <parameter3> - exibe o nome da DLL culpada;
- .reload xxx.dll=<parameter4> - recarregar símbolos para a DLL culpada (se necessário). xxx.dll é o nome da DLL exibida na etapa acima;
- u <parameter2> - desmonte o código que alocou o TLS. Isso deve apontar para a função que alocou o TLS, mas esqueceu de liberá-lo antes que a DLL fosse descarregada.
- Parâmetro 1 - Índice TLS
- Parâmetro 2 - Endereço do código que alocou este índice TLS.
- Parâmetro 3 - DLL nome endereço. Use du para despejá-lo.
- Parâmetro 4 - DLL endereço base.
- Camada de teste: TLS
- ID de parada: TLS_LEAK
- Código de paragem: 0x350
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Estrutura TLS do verificador corrompida.
Causa provávelEssa parada é gerada se as estruturas internas do verificador usadas para armazenar o estado dos slots TLS para thread estiverem corrompidas. Muito provavelmente isso se deve a alguma corrupção aleatória no processo.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço TEB.
- Parâmetro 2 - Endereço TEB esperado.
- Parâmetro 3 - ID do tópico.
- Parâmetro 4 - ID de thread esperado.
- Camada de teste: TLS
- ID de parada: CORRUPTED_TLS
- Código de paragem: 0x351
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Usando um índice TLS inválido.
Causa provávelEssa parada é gerada se um índice TLS inválido for usado. Na maioria dos casos, é porque o código ainda está usando esse índice quando TlsFree é chamado. Aqui está um exemplo para o threadpool thread. T1: Dll carrega e TlsAlloc T1: Retorno de chamada de fila T1: Retorno de chamada aguardado/cancelado ignorado T1: TlsFree T2: Callback é executado e chama TlsSetValue T1: Dll descarrega
Informações exibidas pelo Application Verifier- Parâmetro 1 - Índice TLS
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: TLS
- ID de parada: INVALID_TLS_INDEX
- Código de paragem: 0x352
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Liberação de bloco de memória virtual com tamanho inválido ou endereço inicial.
Causa provávelEssa parada é gerada se o verificador do aplicativo detetar um descarregamento de VirtualFree ou DLL com um endereço inicial inválido ou o tamanho da alocação de memória. No caso de descarregar DLL, isso provavelmente significa uma corrupção de memória dentro da lista de DLL carregada. Para depurar essa parada, observe o rastreamento de pilha atual e o endereço e o tamanho da memória que está prestes a ser liberado e tente determinar por que eles são inválidos.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço base de alocação.
- Parâmetro 2 - Tamanho da região da memória.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: INVALID_FREEMEM
- Código de paragem: 0x600
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Chamada de alocação virtual incorreta.
Causa provávelEssa parada é gerada se o verificador do aplicativo detetar uma chamada VirtualAlloc com um endereço inicial inválido ou o tamanho da alocação de memória. Para depurar essa parada, examine o rastreamento de pilha atual (kb) e o endereço e o tamanho da memória que está prestes a ser alocado e tente determinar por que eles são inválidos.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Ponteiro para o endereço base de alocação.
- Parâmetro 2 - Ponteiro para o tamanho da região da memória.
- Parâmetro 3 - Não utilizado
- Parâmetro 4 - Não utilizado
- Camada de teste: Memória
- ID de parada: INVALID_ALLOCMEM
- Código de paragem: 0x601
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Chamada de visualização de mapa incorreta.
Causa provávelEssa parada é gerada se o verificador do aplicativo detetar uma chamada MapViewOfFile com um endereço base ou tamanho do mapeamento inválido. Para depurar essa parada, observe o rastreamento de pilha atual (kb) e o endereço e o tamanho da memória que está prestes a ser mapeado e tente determinar por que eles são inválidos.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Ponteiro para mapear o endereço base.
- Parâmetro 2 - Ponteiro para ver o tamanho.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: INVALID_MAPVIEW
- Código de paragem: 0x602
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Investigar endereço inválido.
Causa provávelEssa parada é gerada se o verificador do aplicativo detetar uma chamada IsBadXXXPtr com um endereço inválido (por exemplo, um endereço de modo kernel, em vez de um endereço de modo de usuário normal) para que o buffer de memória seja investigado. Para depurar essa parada, examine o rastreamento de pilha atual (kb) e tente determinar por que o chamador da função IsBadXXXPtr acabou com um endereço inválido. Muitas vezes, o endereço é simplesmente falso, por exemplo, um ponteiro não inicializado. A biblioteca MSDN lista alguns motivos pelos quais os aplicativos não devem usar as APIs IsBadXXXPtr: Em um ambiente multitarefa preventivo, é possível que algum outro thread altere o acesso do processo à memória que está sendo testada. A desreferenciação de ponteiros potencialmente inválidos pode desativar a expansão da pilha em outros threads. Um thread esgotando sua pilha, quando a expansão da pilha foi desativada, resulta no encerramento imediato do processo pai, sem janela de erro pop-up ou informações de diagnóstico. Espera-se que os threads em um processo cooperem de tal forma que um não libere a memória de que o outro precisa. O uso desta função não nega a necessidade de fazer isso. Se isso não for feito, o aplicativo pode falhar de maneira imprevisível. Por todos esses motivos, recomendamos nunca usar essas APIs.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço inicial.
- Parâmetro 2 - Tamanho do bloco de memória.
- Parâmetro 3 - Endereço inválido.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: PROBE_INVALID_ADDRESS
- Código de paragem: 0x603
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Sondando a memória livre.
Causa provávelEssa parada é gerada se o verificador do aplicativo detetar uma chamada IsBadXXXPtr para uma alocação de memória livre. Isso é muito ruim porque é possível que, em alguns outros casos, essa memória já tenha sido reutilizada para alguma outra alocação. Como o caminho de código atual (kb) não possui essa memória, ele pode acabar corrompendo a memória de outra pessoa, com efeitos desastrosos. Para depurar essa parada, observe o rastreamento de pilha atual (kb) e tente determinar por que o chamador da função IsBadXXXPtr acabou sondando a memória livre. O endereço pode ser simplesmente falso (por exemplo, ponteiro não inicializado) ou talvez já tenha memória liberada. Se a memória já foi liberada por uma das APIs VirtualFree ou UnmapViewOfFile, '!avrf -vs -a parameter3' procurará um log de rastreamentos de pilha dos caminhos de código que alocaram/liberaram esse endereço e exibirá esses rastreamentos de pilha, se estiverem disponíveis. Isso pode mostrar o rastreamento de pilha que liberou essa memória. Mais frequentemente, a memória é uma alocação de pilha já liberada. Para verificar essa possibilidade, '!avrf -hp -a parameter3' procurará um log de rastreamentos de pilha dos caminhos de código que alocaram/liberaram esse endereço de/para o heap e exibirá esses rastreamentos de pilha, se estiverem disponíveis. A biblioteca MSDN lista alguns motivos pelos quais os aplicativos não devem usar as APIs IsBadXXXPtr: Em um ambiente multitarefa preventivo, é possível que algum outro thread altere o acesso do processo à memória que está sendo testada. A desreferenciação de ponteiros potencialmente inválidos pode desativar a expansão da pilha em outros threads. Um thread esgotando sua pilha, quando a expansão da pilha foi desativada, resulta no encerramento imediato do processo pai, sem janela de erro pop-up ou informações de diagnóstico. Espera-se que os threads em um processo cooperem de tal forma que um não libere a memória de que o outro precisa. O uso desta função não nega a necessidade de fazer isso. Se isso não for feito, o aplicativo pode falhar de maneira imprevisível. Por todos esses motivos, recomendamos nunca usar essas APIs.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço inicial.
- Parâmetro 2 - Tamanho do bloco de memória.
- Parâmetro 3 - Endereço da página de memória livre.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: PROBE_FREE_MEM
- Código de paragem: 0x604
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Sondando uma página de guarda.
Causa provávelEssa parada é gerada se o verificador do aplicativo detetar uma chamada IsBadXXXPtr para uma alocação de memória que contenha pelo menos um GUARD_PAGE. Isso é muito ruim porque é muito possível que esse GUARD_PAGE seja o fim da pilha atual de um thread. Conforme documentado na biblioteca MSDN: A desreferenciação de ponteiros potencialmente inválidos pode desabilitar a expansão de pilha em outros threads. Um thread esgotando sua pilha, quando a expansão da pilha foi desativada, resulta no encerramento imediato do processo pai, sem janela de erro pop-up ou informações de diagnóstico. Para depurar essa parada, olhe para o rastreamento de pilha atual (kb) e tente determinar por que o chamador da função IsBadXXXPtr acabou sondando um GUARD_PAGE. A biblioteca MSDN lista alguns motivos pelos quais os aplicativos não devem usar as APIs IsBadXXXPtr: Em um ambiente multitarefa preventivo, é possível que algum outro thread altere o acesso do processo à memória que está sendo testada. A desreferenciação de ponteiros potencialmente inválidos pode desativar a expansão da pilha em outros threads. Um thread esgotando sua pilha, quando a expansão da pilha foi desativada, resulta no encerramento imediato do processo pai, sem janela de erro pop-up ou informações de diagnóstico. Espera-se que os threads em um processo cooperem de tal forma que um não libere a memória de que o outro precisa. O uso desta função não nega a necessidade de fazer isso. Se isso não for feito, o aplicativo pode falhar de maneira imprevisível. Por todos esses motivos, recomendamos nunca usar essas APIs.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço inicial.
- Parâmetro 2 - Tamanho do bloco de memória.
- Parâmetro 3 - Endereço da página de guarda.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: PROBE_GUARD_PAGE
- Código de paragem: 0x605
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Investigando endereço NULL.
Causa provávelEssa parada é gerada se o verificador do aplicativo detetar uma chamada IsBadXXXPtr com um endereço NULL. Para depurar essa parada, observe o rastreamento de pilha atual (kb) e tente determinar por que o chamador da função IsBadXXXPtr acabou com o endereço NULL. Isso geralmente é o sinal de alguém não verificando o valor de retorno de uma das funções de alocação de memória. Por exemplo, o código abaixo está incorreto:
int main (void)
{
PVOID p;
p = malloc (1024);
Use (p);
return 0;
}
void Use (PVOID p)
{
if (IsBadReadPtr (p)) {
return;
}
//
// p is safe to be used here.
//
}
Este código deve ser reescrito da seguinte forma:
int main (void)
{
PVOID p;
p = malloc (1024);
if (NULL == p)) {
return -1;
}
Use (p);
return 0;
}
void Use (PVOID p)
{
//
// p is safe to be used here.
//
}
A biblioteca MSDN lista alguns motivos pelos quais os aplicativos não devem usar as APIs IsBadXXXPtr: Em um ambiente multitarefa preventivo, é possível que algum outro thread altere o acesso do processo à memória que está sendo testada. A desreferenciação de ponteiros potencialmente inválidos pode desativar a expansão da pilha em outros threads. Um thread esgotando sua pilha, quando a expansão da pilha foi desativada, resulta no encerramento imediato do processo pai, sem janela de erro pop-up ou informações de diagnóstico. Espera-se que os threads em um processo cooperem de tal forma que um não libere a memória de que o outro precisa. O uso desta função não nega a necessidade de fazer isso. Se isso não for feito, o aplicativo pode falhar de maneira imprevisível. Por todos esses motivos, recomendamos nunca usar essas APIs.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Não utilizado.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: PROBE_NULL
- Código de paragem: 0x606
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Bloco de memória de sondagem com endereço ou tamanho inicial inválido.
Causa provávelEssa parada é gerada se o verificador do aplicativo detetar uma chamada IsBadXXXPtr com um endereço inicial inválido (por exemplo, um endereço de modo kernel, em vez de um endereço de modo de usuário normal) ou tamanho inválido para o buffer de memória a ser investigado. Para depurar essa parada, observe o rastreamento de pilha atual (kb) e tente determinar por que o chamador da função IsBadXXXPtr acabou com um endereço ou tamanho inválido. Muitas vezes, o endereço ou tamanho são simplesmente falsos, por exemplo, uma variável não inicializada. A biblioteca MSDN lista alguns motivos pelos quais os aplicativos não devem usar as APIs IsBadXXXPtr: Em um ambiente multitarefa preventivo, é possível que algum outro thread altere o acesso do processo à memória que está sendo testada. A desreferenciação de ponteiros potencialmente inválidos pode desativar a expansão da pilha em outros threads. Um thread esgotando sua pilha, quando a expansão da pilha foi desativada, resulta no encerramento imediato do processo pai, sem janela de erro pop-up ou informações de diagnóstico. Espera-se que os threads em um processo cooperem de tal forma que um não libere a memória de que o outro precisa. O uso desta função não nega a necessidade de fazer isso. Se isso não for feito, o aplicativo pode falhar de maneira imprevisível. Por todos esses motivos, recomendamos nunca usar essas APIs.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço inicial.
- Parâmetro 2 - Tamanho do bloco de memória.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: PROBE_INVALID_START_OR_SIZE
- Código de paragem: 0x607
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Descarregando DLL com tamanho inválido ou endereço inicial.
Causa provávelEssa parada é gerada se o verificador de aplicativo detetar um descarregamento de DLL com um endereço inicial inválido ou tamanho do intervalo de memória DLL. Isso provavelmente significa uma corrupção de memória dentro da lista de DLL interna ntdll.dll carregada.
Informações exibidas pelo Application Verifier- Parâmetro 1 - DLL endereço base de memória.
- Parâmetro 2 - DLL tamanho do intervalo de memória.
- Parâmetro 3 - DLL nome endereço. Use du para despejá-lo.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: INVALID_DLL_RANGE
- Código de paragem: 0x608
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Liberando o bloco de memória dentro do intervalo de endereços da pilha do thread atual.
Causa provávelEssa parada é gerada se o verificador do aplicativo detetar um VirtualFree para um bloco de memória que é realmente parte da pilha do thread atual (!). Para depurar essa parada, olhe para o rastreamento de pilha atual (kb) e tente entender por que a função chamada VirtualFree pensava que o bloco de memória foi alocado dinamicamente ou mapeado, mas que na verdade era memória alocada da pilha.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço base de alocação.
- Parâmetro 2 - Tamanho da região da memória.
- Parâmetro 3 - Stack endereço de limite baixo.
- Parâmetro 4 - Stack endereço de limite alto.
- Camada de teste: Memória
- ID de parada: FREE_THREAD_STACK_MEMORY
- Código de paragem: 0x609
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Parâmetro FreeType incorreto para operação VirtualFree.
Causa provávelEssa parada é gerada se o verificador do aplicativo detetar um VirtualFree com um valor incorreto para o parâmetro FreeType. Os dois únicos valores aceitáveis para este parâmetro são MEM_DECOMMIT e MEM_RELEASE. Se VirtualFree é chamado com qualquer outro valor, exceto estes dois, VirtualFree não conseguirá liberar a memória. Para depurar essa parada, observe o rastreamento de pilha atual (kb): o chamador do VirtualFree é provavelmente o culpado.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Valor incorreto utilizado pela aplicação.
- Parâmetro 2 - Valor correto esperado 1.
- Parâmetro 3 - Valor correto esperado 2.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: INVALID_FREE_TYPE
- Código de paragem: 0x60A
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Tentando liberar o bloco de memória virtual que já está livre.
Causa provávelEssa parada é gerada se o verificador do aplicativo detetar um VirtualFree para um endereço que já é gratuito. Para depurar essa parada, observe o rastreamento de pilha atual (kb) e tente determinar por que a memória já está livre, mas o aplicativo está tentando liberá-la novamente. '!avrf -vs -a parameter1' procurará um log de rastreamentos de pilha dos caminhos de código que alocaram/liberaram esse endereço e exibirá esses rastreamentos de pilha, se estiverem disponíveis. Isso pode mostrar o rastreamento de pilha que liberou essa memória.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço do bloco de memória.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: MEM_ALREADY_FREE
- Código de paragem: 0x60B
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Parâmetro de tamanho incorreto para a operação VirtualFree (MEM_RELEASE).
Causa provávelEssa parada é gerada se o verificador do aplicativo detetar um VirtualFree (MEM_RELEASE) com um valor diferente de zero para o parâmetro dwSize. Ao usar MEM_RELEASE , o único valor aceitável para esse parâmetro é 0. Se VirtualFree é chamado com qualquer outro valor, exceto 0, VirtualFree não conseguirá liberar a memória. Para depurar essa parada, observe o rastreamento de pilha atual (kb): o chamador do VirtualFree é provavelmente o culpado.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Tamanho incorreto usado pelo aplicativo.
- Parâmetro 2 - Tamanho correto esperado (0).
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: INVALID_FREE_SIZE
- Código de paragem: 0x60C
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Exceção inesperada gerada na rotina do ponto de entrada DLL.
Causa provávelEssa parada é gerada se a função de ponto de entrada de uma DLL (DllMain) está gerando uma exceção. Um exemplo por que isso é ruim é: se DllMain(DLL_PROCESS_ATTACH) está gerando uma exceção, o carregador de DLL do Windows irá: - Apanhar e ocultar a exceção; - Descarregue a DLL sem chamar seu DllMain(DLL_PROCESS_DETACH). Então, em muitos casos, a DLL alocou alguns recursos já, então levantou a exceção, e não terá a chance de liberar esses recursos no DllMain (DLL_PROCESS_DETACH). Para depurar essa parada:
- du <parameter1> - para exibir o nome da DLL;
- .exr <parameter2> - para exibir as informações de exceção;
- .cxr <parameter3> seguido de kb - para exibir as informações de contexto de exceção e o rastreamento de pilha para o momento em que a exceção foi gerada;
- < parameter4> é o endereço de uma estrutura de verificador interno e não tem qualquer significado para a maioria dos usuários do verificador.
- Parâmetro 1 - DLL name (use du para despejá-lo).
- Parâmetro 2 - Registo de exceção. Use .exr para exibi-lo.
- Parâmetro 3 - Registo de contexto. Use .cxr para exibi-lo.
- Parâmetro 4 - Descritor dll verificador
- Camada de teste: Memória
- ID de parada: DLL_UNEXPECTED_EXCEPTION
- Código de paragem: 0x60D
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Exceção inesperada gerada na função thread.
Causa provávelEssa parada é gerada se uma função de thread estiver gerando uma exceção. Isso é ruim porque todo o processo será morto. Para depurar essa parada:
- < O parâmetro1> pode ser significativo para o tipo de exceção. Por exemplo, um código de exceção C0000005 significa Violação de Acesso;
- .exr <parameter2> - para exibir as informações de exceção;
- .cxr <parameter3> seguido de kb - para exibir as informações de contexto de exceção.
- Parâmetro 1 - Código de exceção.
- Parâmetro 2 - Registo de exceção. Use .exr para exibi-lo.
- Parâmetro 3 - Registo de contexto. Use .cxr para exibi-lo.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: THREAD_UNEXPECTED_EXCEPTION
- Código de paragem: 0x60E
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Exceção inesperada gerada durante a sondagem da memória.
Causa provávelEssa parada é gerada se obtivermos uma exceção durante uma chamada IsBadXXXPtr. Isso significa que o buffer de memória que estamos investigando não tem a proteção assumida pelo chamador, ou que a memória já foi liberada, etc. Consulte a discussão acima sobre outro código de parada (PROBE_INVALID_ADDRESS, PROBE_FREE_MEM, PROBE_GUARD_PAGE, PROBE_NULL PROBE_INVALID_START_OR_SIZE) para obter mais exemplos de por que o uso das APIs IsBadXXXPtr não é recomendado. Para depurar essa parada:
- < parameter1> normalmente será C0000005 e isso significa Violação de Acesso;
- .exr <parameter2> - para exibir as informações de exceção;
- .cxr <parameter3> seguido de kb - para exibir as informações de contexto da exceção e o rastreamento de pilha no momento em que a exceção foi gerada.
- Parâmetro 1 - Código de exceção.
- Parâmetro 2 - Registo de exceção. Use .exr para exibi-lo.
- Parâmetro 3 - Registo de contexto. Use .cxr para exibi-lo.
- Parâmetro 4 - Não utilizado
- Camada de teste: Memória
- ID de parada: PROBE_UNEXPECTED_EXCEPTION
- Código de paragem: 0x60F
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Tentando redefinir o endereço NULL.
Causa provávelEssa parada é gerada se o verificador do aplicativo detetar uma chamada VirtualFree (MEM_RESET) com um parâmetro NULL first. MEM_RESET deve ser usado apenas para memória já alocada, portanto, NULL não é um primeiro parâmetro válido neste caso.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Não utilizado.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: INVALID_MEM_RESET
- Código de paragem: 0x610
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Liberando bloco de memória de pilha dentro do intervalo de endereços de pilha do thread atual.
Causa provávelEssa parada é gerada se o verificador do aplicativo detetar um HeapFree, para um bloco de memória que realmente faz parte da pilha do thread atual (!). Para depurar essa parada, olhe para o rastreamento de pilha atual (kb) e tente entender por que a função chamada HeapFree pensava que o bloco de memória foi alocado dinamicamente ou mapeado, mas que na verdade era memória alocada da pilha.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço base de alocação.
- Parâmetro 2 - Tamanho da região da memória.
- Parâmetro 3 - Stack endereço de limite baixo.
- Parâmetro 4 - Stack endereço de limite alto.
- Camada de teste: Memória
- ID de parada: FREE_THREAD_STACK_MEMORY_AS_HEAP
- Código de paragem: 0x612
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Desmapeando a região da memória dentro do intervalo de endereços de pilha do thread atual.
Causa provávelEssa parada é gerada se o verificador do aplicativo detetar um UnmapViewOfFile, para um bloco de memória que na verdade faz parte da pilha do thread atual (!). Para depurar essa parada, olhe para o rastreamento de pilha atual (kb) e tente entender por que a função chamada UnmapViewOfFile pensava que o bloco de memória foi alocado dinamicamente ou mapeado, mas que na verdade era memória alocada da pilha.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço base de alocação.
- Parâmetro 2 - Tamanho da região da memória.
- Parâmetro 3 - Stack endereço de limite baixo.
- Parâmetro 4 - Stack endereço de limite alto.
- Camada de teste: Memória
- ID de parada: FREE_THREAD_STACK_MEMORY_AS_MAP
- Código de paragem: 0x613
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Endereço RTL_RESOURCE incorreto.
Causa provávelEssa parada é gerada se o aplicativo estiver tentando usar NULL ou algum outro endereço incorreto (por exemplo, um endereço de modo kernel) como o endereço de um objeto válido. RtlInitializeResource (NULL) é uma chamada de API incorreta que acionará esse tipo de parada do verificador. param1 é o endereço incorreto usado e o culpado está no rastreamento de pilha (exiba-o com kb).
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: INVALID_RESOURCE_ADDRESS
- Código de paragem: 0x614
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Endereço de seção crítica inválido.
Causa provávelEssa parada é gerada se o aplicativo estiver tentando usar NULL ou algum outro endereço incorreto (por exemplo, um endereço de modo kernel) como o endereço de um objeto válido. EnterCriticalSection(NULL) é uma chamada de API incorreta que acionará esse tipo de parada do verificador. param1 é o endereço incorreto usado e o culpado está no rastreamento de pilha (exiba-o com kb).
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: INVALID_CRITSECT_ADDRESS
- Código de paragem: 0x615
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Tente executar código em memória não executável.
Causa provávelEssa parada é gerada se o aplicativo estiver tentando executar código de um endereço que não é executável ou livre. Para depurar essa parada:
- u <parameter2> - para desmontar o código culpado
- .exr <parameter3> - para exibir as informações de exceção
- .cxr <parameter4> seguido de kb - para exibir as informações de contexto da exceção e o rastreamento de pilha para o momento em que a exceção foi gerada.
- Parâmetro 1 - Endereço sendo acessado.
- Parâmetro 2 - Código executando acesso inválido.
- Parâmetro 3 - Registo de exceção. Use .exr para exibi-lo.
- Parâmetro 4 - Registo de contexto. Use .cxr para exibi-lo.
- Camada de teste: Memória
- ID de parada: THREAD_UNEXPECTED_EXCEPTION_CODE
- Código de paragem: 0x616
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Exceção inesperada gerada durante a inicialização do buffer de saída.
Causa provávelEssa parada é gerada se obtivermos uma exceção ao inicializar um buffer especificado como parâmetro de saída para uma API Win32 ou CRT. Isso normalmente significa que o tamanho do buffer de saída especificado está incorreto. Para depurar essa parada:
- .exr <parameter3> - para exibir as informações de exceção
- .cxr <parameter4> seguido de kb - para exibir as informações de contexto da exceção e o rastreamento de pilha no momento em que a exceção foi gerada.
- Parâmetro 1 - Endereço inicial do buffer.
- Parâmetro 2 - Tamanho do buffer.
- Parâmetro 3 - Registo de exceção. Use .exr para exibi-lo.
- Parâmetro 4 - Registo de contexto. Use .cxr para exibi-lo.
- Camada de teste: Memória
- ID de parada: OUTBUFF_UNEXPECTED_EXCEPTION
- Código de paragem: 0x617
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Exceção inesperada ao tentar encontrar o tamanho do bloco de pilha.
Causa provávelEssa parada é gerada se obtivermos uma exceção ao chamar HeapSize para um bloco de pilha que está sendo liberado. Isso normalmente significa que o endereço do bloco de pilha especificado está incorreto ou que o heap está corrompido. Para depurar essa parada:
- .exr <parameter3> - para exibir o registro de exceção
- .cxr <parameter4> seguido de kb - para exibir as informações de contexto da exceção e o rastreamento de pilha no momento em que a exceção foi gerada.
- Parâmetro 1 - Endereço do bloco de pilha que está sendo liberado.
- Parâmetro 2 - Pega de pilha.
- Parâmetro 3 - Registo de exceção. Use .exr para exibi-lo.
- Parâmetro 4 - Registo de contexto. Use .cxr para exibi-lo.
- Camada de teste: Memória
- ID de parada: SIZE_HEAP_UNEXPECTED_EXCEPTION
- Código de paragem: 0x618
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Libertar bloco de memória com endereço inicial inválido.
Causa provávelEssa parada é gerada se o programa chama VirtualFree (MEM_RELEASE) com um parâmetro lpAddress que não é o endereço base retornado pela função VirtualAlloc ou VirtualAllocEx quando a região das páginas foi reservada; Para depurar essa parada:
- kb - para exibir o rastreamento de pilha atual, que está chamando VirtualFree. O provável culpado é a DLL que chama VirtualFree.
- Parâmetro 1 - Endereço do bloco de memória que está sendo liberado.
- Parâmetro 2 - Endereço correto esperado do bloco de memória.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: INVALID_FREEMEM_START_ADDRESS
- Código de paragem: 0x619
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Desmapeando bloco de memória com endereço inicial inválido.
Causa provávelEssa parada é gerada se o programa chama UnmapViewOfFile com um parâmetro lpBaseAddress que não é idêntico ao valor retornado por uma chamada anterior para a função MapViewOfFile ou MapViewOfFileEx. Para depurar essa parada:
- kb - para exibir o rastreamento de pilha atual, que está chamando UnmapViewOfFile. O provável culpado é a DLL que chama UnmapViewOfFile.
- Parâmetro 1 - Endereço do bloco de memória que está sendo desmapeado.
- Parâmetro 2 - Endereço correto esperado do bloco de memória.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: INVALID_UNMAPVIEW_START_ADDRESS
- Código de paragem: 0x61A
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Exceção inesperada gerada na função de retorno de chamada ThreadPool.
Causa provávelEssa parada é gerada se uma função de retorno de chamada no thread threadpool estiver gerando uma exceção. Para depurar essa parada:
- < O parâmetro1> pode ser significativo para o tipo de exceção. Por exemplo, um código de exceção C0000005 significa Violação de Acesso.
- .exr <parameter2> - para exibir as informações de exceção.
- .cxr <parameter3> seguido de kb - para exibir as informações de contexto de exceção.
- Parâmetro 1 - Código de exceção
- Parâmetro 2 - Registo de exceção. Use .exr para exibi-lo
- Parâmetro 3 - Registo de contexto. Use .cxr para exibi-lo
- Parâmetro 4 - Não utilizado
- Camada de teste: Memória
- ID de parada: THREADPOOL_UNEXPECTED_EXCEPTION
- Código de paragem: 0x61B
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
código na memória não executável
Causa provávelEssa parada é gerada se o aplicativo estiver tentando executar código de um endereço que não é executável ou livre. Para depurar essa parada:
- u <parameter2> - para desmontar o código culpado
- .exr <parameter3> - para exibir as informações de exceção
- .cxr <parameter4> seguido de kb - para exibir as informações de contexto da exceção e o rastreamento de pilha para o momento em que a exceção foi gerada.
- Parâmetro 1 - Endereço que está sendo acessado
- Parâmetro 2 - Código executando acesso inválido
- Parâmetro 3 - Registo de exceção. Use .exr para exibi-lo.
- Parâmetro 4 - Registo de contexto. Use .cxr para exibi-lo.
- Camada de teste: Memória
- ID de parada: THREADPOOL_UNEXPECTED_EXCEPTION_CODE
- Código de paragem: 0x61C
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Criação de heap executável.
Causa provávelEssa parada é gerada se o aplicativo estiver criando um heap executável. Isso pode ser um risco de segurança.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Não utilizado.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: EXECUTABLE_HEAP
- Código de paragem: 0x61D
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Alocação de memória executável.
Causa provávelEssa parada é gerada se o aplicativo estiver alocando memória executável. Isso pode ser um risco de segurança.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Proteção de página especificada pelo chamador.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Memória
- ID de parada: EXECUTABLE_MEMORY
- Código de paragem: 0x61E
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Tente executar código em memória não executável (primeira chance).
Causa provávelEssa parada é gerada se o aplicativo estiver tentando executar código de um endereço que não é executável ou livre. Para depurar essa parada:
- u <parameter2> - para desmontar o código culpado
- .exr <parameter3> - para exibir as informações de exceção
- .cxr <parameter4> seguido de kb - para exibir as informações de contexto da exceção e o rastreamento de pilha para o momento em que a exceção foi gerada.
- Parâmetro 1 - Endereço sendo acessado.
- Parâmetro 2 - Código executando acesso inválido.
- Parâmetro 3 - Registo de exceção. Use .exr para exibi-lo.
- Parâmetro 4 - Registo de contexto. Use .cxr para exibi-lo.
- Camada de teste: Exceções
- ID de parada: FIRST_CHANCE_ACCESS_VIOLATION_CODE
- Código de paragem: 0x650
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
A prioridade deste thread threadpool foi alterada.
Causa provávelEssa parada é gerada se a prioridade do thread for alterada quando ele for retornado ao threadpool.
Informações exibidas pelo Application Verifier- Formato: - threadpool thread (%x) tendo executado Callback (%p) tem uma prioridade de thread alterada (%i -> %i)
- Parâmetro 1 - Função de retorno de chamada.
- Parâmetro 2 - Contexto.
- Parâmetro 3 - Threadpool Object allocation stack trace, use dps para despejá-lo.
- Parâmetro 4 - Prioridade atual.
- Camada de teste: Threadpool
- ID de parada: INCONSISTENT_PRIORITY
- Código de paragem: 0x700
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
A afinidade deste threadpool thread foi alterada.
Causa provávelEssa parada é gerada se a afinidade de thread for alterada quando ela for retornada ao threadpool.
Informações exibidas pelo Application Verifier- Formato: - threadpool thread (%x) tendo executado Callback (%p) tem uma máscara de afinidade de thread alterada (%p -> %p)
- Parâmetro 1 - Função de retorno de chamada.
- Parâmetro 2 - Contexto.
- Parâmetro 3 - Threadpool Object allocation stack trace, use dps para despejá-lo.
- Parâmetro 4 - Afinidade atual.
- Camada de teste: Threadpool
- ID de parada: INCONSISTENT_AFFINITY_MASK
- Código de paragem: 0x701
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Msg não processada no pool de msg do thread atual.
Causa provávelEssa parada é gerada se alguma mensagem deixada como não processada quando esse thread do threadpool é retornado ao pool. É perigoso, uma vez que será processado num contexto totalmente diferente. Por favor, use Por favor, use !avrf -tp <Param4> para ver as mensagens postadas neste tópico.
Informações exibidas pelo Application Verifier- Formato: - threadpool thread (%x) tendo executado Callback (%p) tem mensagem de janela pendente (%x: %x)
- Parâmetro 1 - Função de retorno de chamada.
- Parâmetro 2 - Contexto.
- Parâmetro 3 - Threadpool Object allocation stack trace, use dps para despejá-lo.
- Parâmetro 4 - ID do threadpool do thread. Por favor, use !avrf -tp <threadid> para ver as mensagens postadas neste tópico.
- Camada de teste: Threadpool
- ID de parada: ORPHANED_THREAD_MESSAGE
- Código de paragem: 0x702
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
A janela não fechada pertencia ao fio atual.
Causa provávelEssa parada é gerada se qualquer janela for mantida ativa quando esse thread do threadpool for retornado ao pool.
Informações exibidas pelo Application Verifier- Formato: - threadpool thread (%x) tendo executado Callback (%p) tem hwnd válido (%x: %s) que poderia receber mensagens
- Parâmetro 1 - Função de retorno de chamada.
- Parâmetro 2 - Contexto.
- Parâmetro 3 - Threadpool Object allocation stack trace, use dps para despejá-lo.
- Parâmetro 4 - ID do threadpool do thread.
- Camada de teste: Threadpool
- ID de parada: ORPHANED_THREAD_WINDOW
- Código de paragem: 0x703
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
ExitThread() em um threadpool de threads.
Causa provávelEssa parada é gerada se ExitThread é chamado em um threadpool thread. É proibido, pois tornará o sistema instável. Isso causará vazamento de recursos, congelamento ou AV.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Função de retorno de chamada.
- Parâmetro 2 - Contexto.
- Parâmetro 3 - Threadpool Object allocation stack trace, use dps para despejá-lo.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Threadpool
- ID de parada: ILLEGAL_THREAD_EXIT
- Código de paragem: 0x704
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
O thread está no estado de representação quando é retornado a um threadpool de threads.
Causa provávelEssa parada é gerada se a função de retorno de chamada alterar o token de thread para representar outro usuário e esqueceu de redefini-lo antes de devolvê-lo de volta ao threadpool.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Função de retorno de chamada.
- Parâmetro 2 - Contexto.
- Parâmetro 3 - Threadpool Object allocation stack trace, use dps para despejá-lo.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Threadpool
- ID de parada: THREAD_IN_IMPERSONATION
- Código de paragem: 0x705
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Uma função que requer thread persistente é chamada.
Causa provávelAlgumas APIs do Microsoft Windows precisam ser chamadas dentro de um thread dedicado ou persistente. No pool de threads, você geralmente deve evitar o uso de armazenamento local de thread e enfileiramento de chamadas assíncronas que exigem um thread persistente, como a função RegNotifyChangeKeyValue. No entanto, essas funções podem ser enfileiradas para um thread de trabalho persistente usando QueueUserWorkItem com a opção WT_EXECUTEINPERSISTENTTHREAD. Um kb no depurador revelará o chamador.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Função de retorno de chamada.
- Parâmetro 2 - Contexto.
- Parâmetro 3 - Threadpool Object allocation stack trace, use dps para despejá-lo.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Threadpool
- ID de parada: PERSISTED_THREAD_NEEDED
- Código de paragem: 0x706
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
O thread está em estado de transação suja.
Causa provávelEssa parada é gerada se a função de retorno de chamada esqueceu de fechar ou redefinir o identificador de transação atual.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Função de retorno de chamada.
- Parâmetro 2 - Contexto.
- Parâmetro 3 - Threadpool Object allocation stack trace, use dps para despejá-lo.
- Parâmetro 4 - Identificador de transações.
- Camada de teste: Threadpool
- ID de parada: DIRTY_TRANSACTION_CONTEXT
- Código de paragem: 0x707
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Este estado de threadpool tem chamadas CoInit e CoUnInit desequilibradas.
Causa provávelEssa parada é gerada se a função de retorno de chamada chamar CoInit e CoUnInit desequilibradas.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Função de retorno de chamada.
- Parâmetro 2 - Contexto.
- Parâmetro 3 - Threadpool Object allocation stack trace, use dps para despejá-lo.
- Parâmetro 4 - Contagem equilibrada de chamadas.
- Camada de teste: Threadpool
- ID de parada: DIRTY_COM_STATE
- Código de paragem: 0x708
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Os parâmetros para o objeto de temporizador são inconsistentes. O período deve ser 0 quando WT_EXECUTEONLYONCE é especificado ao criar o temporizador
Causa provávelEsta paragem é gerada se o período para sinalizar o temporizador não for zero quando o temporizador estiver definido para sinalizar apenas uma vez com o sinalizador WT_EXECUTEONLYONCE
Informações exibidas pelo Application Verifier- Parâmetro 1 - Período especificado.
- Parâmetro 2 - Sinalizadores especificados.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Threadpool
- ID de parada: INCONSISTENT_TIMER_PARAMS
- Código de paragem: 0x709
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
O bloqueio do carregador foi mantido pelo thread threadpool dentro do retorno de chamada.
Causa provávelEssa parada é gerada se o bloqueio do carregador é mantido dentro do retorno de chamada e não é liberado quando o thread é retornado ao threadpool.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Função de retorno de chamada.
- Parâmetro 2 - Contexto.
- Parâmetro 3 - Threadpool Object allocation stack trace, use dps para despejá-lo.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Threadpool
- ID de parada: LOADER_LOCK_HELD
- Código de paragem: 0x70A
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
O idioma preferencial é definido pelo thread threadpool dentro do retorno de chamada.
Causa provávelEssa parada é gerada se o idioma preferido estiver definido dentro do retorno de chamada e não for limpo quando o thread for retornado ao threadpool.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Função de retorno de chamada.
- Parâmetro 2 - Contexto.
- Parâmetro 3 - Threadpool Object allocation stack trace, use dps para despejá-lo.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Threadpool
- ID de parada: PREFERRED_LANGUAGES_SET
- Código de paragem: 0x70B
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
A prioridade em segundo plano é definida pelo thread threadpool dentro do retorno de chamada.
Causa provávelEssa parada é gerada se a prioridade em segundo plano estiver definida no retorno de chamada e não for desabilitada quando o thread for retornado ao threadpool.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Função de retorno de chamada.
- Parâmetro 2 - Contexto.
- Parâmetro 3 - Threadpool Object allocation stack trace, use dps para despejá-lo.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Threadpool
- ID de parada: BACKGROUND_PRIORITY_SET
- Código de paragem: 0x70C
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
TerminateThread() em um threadpool de threads.
Causa provávelEssa parada é gerada se TerminateThread for chamado em um threadpool de threads. É proibido, pois tornará o sistema instável. Isso causará vazamento de recursos, congelamento ou AV.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Não utilizado.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: Threadpool
- ID de parada: ILLEGAL_THREAD_TERMINATION
- Código de paragem: 0x70D
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
A pilha foi desenrolada quando a operação de E/S assíncrona está pendente.
Causa provávelEssa parada é gerada se o aplicativo emitiu uma operação de E/S que usa uma variável de pilha e não esperou a conclusão da E/S, levando à corrupção da pilha. Para depurar essa parada:
- dps <parameter4> para exibir o rastreamento de pilha quando a E/S foi emitida. Parameter1 indica o endereço baseado em pilha e parameter3 o thread que emitiu a E/S.
- Parâmetro 1 - Endereço da variável de pilha usada na E/S.
- Parâmetro 2 - Ponteiro de pilha atual.
- Parâmetro 3 - Thread original que emitiu a E/S.
- Parâmetro 4 - Stack Trace quando a E/S foi emitida.
- Camada de teste: IO
- ID de parada: ASYNCIO_STACK_UNWIND
- Código de paragem: 0x800
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
A pilha foi corrompida quando a operação de E/S assíncrona está pendente.
Causa provávelEssa parada é gerada se o aplicativo emitiu uma operação de E/S que usa uma variável de pilha e não esperou a conclusão da E/S, levando à corrupção da pilha. Para depurar essa parada:
- dps <parameter4> para exibir o rastreamento de pilha quando a E/S foi emitida. Parameter1 indica o endereço baseado em pilha e parameter3 o thread que emitiu a E/S.
- Parâmetro 1 -Endereço da variável de pilha usada na E/ S.
- Parâmetro 2 - Ponteiro de pilha atual.
- Parâmetro 3 - Thread original que emitiu a E/S.
- Parâmetro 4 - Stack Trace quando a E/S foi emitida.
- Camada de teste: IO
- ID de parada: ASYNCIO_CORRUPTED_STACK
- Código de paragem: 0x801
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Usando um endereço liberado em uma operação de E/S pendente.
Causa provávelEssa parada é gerada se o aplicativo emitiu uma operação de E/S e liberou a memória usada na E/S antes que a E/S fosse concluída, levando à corrupção de memória, etc. Para depurar essa parada:
- dps <parameter4> - para exibir o rastreamento de pilha quando a E/S foi emitida. Parâmetro1 indica o endereço usado na E/S. Parameter2 indica o endereço que está sendo liberado e parameter3 o thread que emitiu a E/S.
- Parâmetro 1 -Endereço utilizado na E/ S.
- Parâmetro 2 - Endereço sendo liberado.
- Parâmetro 3 - Thread original que emitiu a E/S.
- Parâmetro 4 - Stack Trace quando a E/S foi emitida.
- Camada de teste: IO
- ID de parada: FREED_ADDRESS_IN_PENDINGIO
- Código de paragem: 0x802
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Um bloco de status de E/S (OVERLAPPED) é reutilizado enquanto a solicitação de E/S associada ainda está pendente.
Causa provávelEssa parada é gerada se o aplicativo reutilizou um bloco de status de E/S (OVERLAPPED) enquanto uma solicitação de E/S usando esse bloco de status de E/S (OVERLAPPED) ainda está pendente. Para depurar essa parada:
- dps <parameter3> para exibir o rastreamento de pilha quando a E/S original foi emitida. Parameter1 indica o endereço usado na E/S e o parâmetro2 o thread que emitiu a E/S.
- Parâmetro 1 - Endereço do bloco de status de E/S (OVERLAPPED).
- Parâmetro 2 - Thread original que emitiu a E/S.
- Parâmetro 3 - Stack Trace quando a E/S foi emitida.
- Parâmetro 4 - Não utilizado.
- Camada de teste: IO
- ID de parada: REUSED_IOSTATUS_BLOCK
- Código de paragem: 0x803
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Usando um sinalizador sem suporte, FILE_ATTRIBUTE_NOT_CONTENT_INDEXED em CreateFile
Causa provávelVersão antiga do MSDN erroneamente documentado CreateFile como suporte FILE_ATTRIBUTE_NOT_CONTENT_INDEXED. Se esse sinalizador for pretendido, ele deve ser definido usando outras funções da API, como SetFileAttributes.
- ln <parameter1> - para encontrar o chamador de CreateFile.
- Formato: - CreateFile ao escrever %hs%ws com bandeiras %08x %08x %08x
- Parâmetro 1 - Endereço de retorno.
- Parâmetro 2 - Não utilizado.
- Parâmetro 3 - Não utilizado.
- Parâmetro 4 - Não utilizado.
- Camada de teste: IO
- ID de parada: USING_BAD_CREATEFILE_FLAG
- Código de paragem: 0x804
- Gravidade: Advertência
- Erro único:
- Relatório de erros: Nenhum
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Uma alocação de pilha foi vazada.
Causa provávelEssa parada é gerada se a dll proprietária da alocação foi descarregada dinamicamente enquanto possuía recursos.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço da alocação vazada. Execute !heap -p -a <endereço> para obter informações adicionais sobre a alocação.
- Parâmetro 2 - Endereço para o rastreamento da pilha de alocação. Execute o endereço> dps <para visualizar a pilha de alocação.
- Parâmetro 3 - Endereço do nome dll do proprietário. Execute du <address> para ler o nome da dll.
- Parâmetro 4 - Base da dll proprietário. Execute .reload <dll_name> = <endereço> para recarregar a dll do proprietário. Use 'lm' para obter mais informações sobre os módulos carregados e descarregados.
- Camada de teste: Fuga
- ID de parada: DOTAÇÃO
- Código de paragem: 0x900
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Um HANDLE vazou.
Causa provávelEssa parada é gerada se a dll proprietária do identificador foi descarregada dinamicamente enquanto possuía recursos. Para depurar essa parada: Execute o parâmetro !htrace1 para obter informações adicionais sobre o identificador.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Valor da alça vazada. Execute o identificador> !htrace <para obter informações adicionais sobre o identificador se o rastreamento do identificador estiver habilitado.
- Parâmetro 2 - Endereço para o rastreamento da pilha de alocação. Execute o endereço> dps <para visualizar a pilha de alocação.
- Parâmetro 3 - Endereço do nome dll do proprietário. Execute du <address> para ler o nome da dll.
- Parâmetro 4 - Base da dll proprietário. Execute .reload <dll_name> = <endereço> para recarregar a dll do proprietário. Use 'lm' para obter mais informações sobre os módulos carregados e descarregados.
- Camada de teste: Fuga
- ID de parada: PEGA
- Código de paragem: 0x901
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Um HKEY vazou.
Causa provávelEssa parada é gerada se a dll proprietária da chave do Registro foi descarregada dinamicamente enquanto possuía recursos.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Valor do HKEY vazado.
- Parâmetro 2 - Endereço para o rastreamento da pilha de alocação. Execute o endereço> dps <para visualizar a pilha de alocação.
- Parâmetro 3 - Endereço do nome dll do proprietário. Execute du <address> para ler o nome da dll.
- Parâmetro 4 - Base da dll proprietário. Execute .reload <dll_name> = <endereço> para recarregar a dll do proprietário. Use 'lm' para obter mais informações sobre os módulos carregados e descarregados.
- Camada de teste: Fuga
- ID de parada: REGISTO
- Código de paragem: 0x902
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Uma reserva virtual vazou.
Causa provávelEssa parada é gerada se a dll proprietária da reserva virtual foi descarregada dinamicamente enquanto possuía recursos.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço de reserva vazado.
- Parâmetro 2 - Endereço para o rastreamento da pilha de alocação. Execute o endereço> dps <para visualizar a pilha de alocação.
- Parâmetro 3 - Endereço do nome dll do proprietário. Execute du <address> para ler o nome da dll.
- Parâmetro 4 - Base da dll proprietário. Execute .reload <dll_name> = <endereço> para recarregar a dll do proprietário. Use 'lm' para obter mais informações sobre os módulos carregados e descarregados.
- Camada de teste: Fuga
- ID de parada: VIRTUAL_RESERVATION
- Código de paragem: 0x903
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Um BSTR vazou.
Causa provávelEssa parada é gerada se a dll proprietária do SysString foi descarregada dinamicamente enquanto possuía recursos.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço do BSTR vazado. Execute !heap -p -a <endereço> para obter informações adicionais sobre a alocação.
- Parâmetro 2 - Endereço para o rastreamento da pilha de alocação. Execute o endereço> dps <para visualizar a pilha de alocação.
- Parâmetro 3 - Endereço do nome dll do proprietário. Execute du <address> para ler o nome da dll.
- Parâmetro 4 - Base da dll proprietário. Execute .reload <dll_name> = <endereço> para recarregar a dll do proprietário. Use 'lm' para obter mais informações sobre os módulos carregados e descarregados.
- Camada de teste: Fuga
- ID de parada: SYSSTRING
- Código de paragem: 0x904
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Uma notificação de energia não foi cancelada.
Causa provávelEssa parada é gerada se a dll registrada para notificação de energia e foi descarregada dinamicamente sem cancelar o registro.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço do registo da notificação de energia.
- Parâmetro 2 - Endereço para o rastreamento da pilha de registro. Execute o endereço> dps <para visualizar a pilha de alocação.
- Parâmetro 3 - Endereço do nome dll do proprietário. Execute du <address> para ler o nome da dll.
- Parâmetro 4 - Base da dll proprietário. Execute .reload <dll_name> = <endereço> para recarregar a dll do proprietário. Use 'lm' para obter mais informações sobre os módulos carregados e descarregados.
- Camada de teste: Fuga
- ID de parada: POWER_NOTIFICATION
- Código de paragem: 0x905
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Uma dotação da COM foi divulgada.
Causa provávelEssa parada é gerada se a dll proprietária da alocação COM foi descarregada dinamicamente enquanto possuía recursos.
Informações exibidas pelo Application Verifier- Parâmetro 1 - Endereço da dotação COM que vazou. Execute !heap -p -a <endereço> para obter informações adicionais sobre a alocação.
- Parâmetro 2 - Endereço para o rastreamento da pilha de alocação. Execute o endereço> dps <para visualizar a pilha de alocação.
- Parâmetro 3 - Endereço do nome dll do proprietário. Execute du <address> para ler o nome da dll.
- Parâmetro 4 - Base da dll proprietário. Execute .reload <dll_name> = <endereço> para recarregar a dll do proprietário. Use 'lm' para obter mais informações sobre os módulos carregados e descarregados.
- Camada de teste: Fuga
- ID de parada: COM_ALLOCATION
- Código de paragem: 0x906
- Gravidade: Erro
- Erro único:
- Relatório de erros: Intervalo
- Iniciar sessão no ficheiro: Sim
- Criar backtrace: Sim
Ver também
Application Verifier - Códigos de parada e definições
Application Verifier - Visão geral
Application Verifier - Recursos
Application Verifier - Aplicativos de teste
Application Verifier - Testes dentro do Application Verifier
Application Verifier - Depurando o Application Verifier para