Compartilhar via


Application Verifier - Códigos de parada - Rede

Os códigos de parada a seguir estão contidos neste conjunto de testes.

API ilegal de sistema de rede chamada por meio de DllMain

Causa provável

Foi feita uma chamada para uma API de sistema de rede que não funciona ao ser chamada de dentro do DllMain. Muitas APIs Win32, não apenas APIs de sistema de rede Win32, não podem ser chamadas por meio do DllMain. Para obter mais informações, leia a documentação sobre DllMain na biblioteca MSDN. Para identificar a rotina que fez a chamada, despeje o rastreamento de pilha atual usando o comando "k" no depurador.

Informações exibidas pelo Application Verifier
  • Parâmetro 1  —  Função de sistema de rede sendo chamada por meio do DllMain
  • Parâmetro 2  —  Nome do Dll tornando a chamada inválida caso não sea NULL
  • Parâmetro 3  —  Não usado
  • Parâmetro 4  —  Não usado

Informações adicionais
  • Camada de teste: Sistema de rede
  • ID da interrupção: UNSUPPORTED_API_CALL_IN_DLLMAIN
  • Código de interrupção: 0000e000
  • Severidade:  Erro
  • Erro único: não
  • Relatório de erro: Interrupção
  • Registrar no arquivo: sim
  • Criar backtrace: sim

Tentativa de usar um SOQUETE fechado

Causa provável

Um SOQUETE foi usado após o ter sido fechado. Para identificar a rotina que tentou usar o SOQUETE fechado, despeje o rastreamento de pilha atual usando o comando "k" no depurador. Para despejar o rastreamento de pilha da rotina que fechou o SOQUETE, use o comando dps com o segundo parâmetro da parada.

Informações exibidas pelo Application Verifier
  • Parâmetro 1  —  SOQUETE sendo acessado
  • Parâmetro 2  —  Rastreamento de pilha da função que fechou o SOQUETE. Use dps para despejar o rastreamento de pilha se não for NULL
  • Parâmetro 3  —  Não usado
  • Parâmetro 4  —  Não usado

Informações adicionais
  • Camada de teste: Sistema de rede
  • ID da interrupção: WSA_SOCKET_ALREADY_CLOSED
  • Código de interrupção: 0000e001
  • Severidade:  Erro
  • Erro único: não
  • Relatório de erro: Interrupção
  • Registrar no arquivo: sim
  • Criar backtrace: sim

Tentativa de usar um SOQUETE desconhecido

Causa provável

Foi feita uma tentativa de usar um valor desconhecido para um SOQUETE que não foi criado por uma chamada para Winsock. Para ver o rastreamento de pilha da rotina que tentou essa ação, use o comando "k" no depurador.

Informações exibidas pelo Application Verifier
  • Parâmetro 1  —  SOQUETE sendo acessado
  • Parâmetro 2  —  Não usado
  • Parâmetro 3  —  Não usado
  • Parâmetro 4  —  Não usado

Informações adicionais
  • Camada de teste: Sistema de rede
  • ID da interrupção: WSA_INVALID_SOCKET_HANDLE
  • Código de interrupção: 0000e002
  • Severidade:  Erro
  • Erro único: não
  • Relatório de erro: Interrupção
  • Registrar no arquivo: sim
  • Criar backtrace: sim

Identificador de SOQUETE vazado detectado

Causa provável

Um SOQUETE aberto de um provedor de serviços DE base Winsock foi detectado como tendo sido vazado de uma DLL sendo descarregada. Para solucionar a interrupção, despeje o rastreamento de pilha do thread que abriu o identificador de SOQUETE usando o comando dps no depurador no segundo parâmetro da parada do verificador.

Informações exibidas pelo Application Verifier
  • Parâmetro 1  —  Identificador do SOQUETE sendo vazado
  • Parâmetro 2  —  Rastreamento de pilha de inicialização. Use dps para despejar a pilha se não for NULL
  • Parâmetro 3  —  ID do thread que abriu o identificador
  • Parâmetro 4  —  Não usado

Informações adicionais
  • Camada de teste: Sistema de rede
  • ID da interrupção: WSA_LEAKED_SOCKET_HANDLE
  • Código de interrupção: 0000e003
  • Severidade:  Erro
  • Erro único: não
  • Relatório de erro: Interrupção
  • Registrar no arquivo: sim
  • Criar backtrace: sim

Tentativa de usar um SOQUETE fechado

Causa provável

Um SOQUETE de um provedor de base Winsock foi usado depois que ele foi fechado. Isso geralmente indica uma falha em um provedor de serviços em camadas (um LSP — uma DLL entre o aplicativo e o Winsock). Para identificar a rotina que tentou usar o SOQUETE fechado, despeje o rastreamento de pilha atual usando o comando "k" no depurador. Para despejar o rastreamento de pilha da rotina que fechou o SOQUETE, use o comando dps com o segundo parâmetro da parada.

Informações exibidas pelo Application Verifier
  • Parâmetro 1  —  SOQUETE sendo acessado.
  • Parâmetro 2  —  Rastreamento de pilha da função que fechou o SOQUETE. Use dps para despejar o rastreamento de pilha se não for NULL
  • Parâmetro 3  —  Não usado
  • Parâmetro 4  —  Não usado

Informações adicionais
  • Camada de teste: Sistema de rede
  • ID da interrupção: WSP_SOCKET_ALREADY_CLOSED
  • Código de interrupção: 0000e004
  • Severidade:  Erro
  • Erro único: não
  • Relatório de erro: Interrupção
  • Registrar no arquivo: sim
  • Criar backtrace: sim

Tentativa de usar um SOQUETE desconhecido

Causa provável

Um valor de identificador de SOQUETE desconhecido foi usado por um provedor de serviços em camadas (LSP) Winsock. Isso geralmente aponta para uma falha em um LSP específico em camadas entre o aplicativo e o Winsock. Para identificar a rotina que tentou usar o SOQUETE desconhecido, despeje o rastreamento de pilha atual usando o comando "k" no depurador.

Informações exibidas pelo Application Verifier
  • Parâmetro 1  —  SOQUETE sendo acessado
  • Parâmetro 2  —  Não usado
  • Parâmetro 3  —  Não usado
  • Parâmetro 4  —  Não usado

Informações adicionais
  • Camada de teste: Sistema de rede
  • ID da interrupção: WSP_INVALID_SOCKET_HANDLE
  • Código de interrupção: 0000e005
  • Severidade:  Erro
  • Erro único: não
  • Relatório de erro: Interrupção
  • Registrar no arquivo: sim
  • Criar backtrace: sim

Identificador de SOQUETE vazado detectado

Causa provável

Um SOQUETE aberto de um provedor de serviços de base Winsock foi detectado como tendo sido vazado. Isso geralmente aponta para uma falha em um LSP específico em camadas entre o aplicativo e o Winsock. Para solucionar a interrupção, despeje o rastreamento de pilha do thread que abriu o identificador de SOQUETE usando o comando dps no depurador no segundo parâmetro da parada do verificador.

Informações exibidas pelo Application Verifier
  • Parâmetro 1  —  Identificador do SOQUETE sendo vazado
  • Parâmetro 2  —  Rastreamento de pilha de inicialização. Use dps para despejar a pilha se não for NULL
  • Parâmetro 3  —  ID do thread que abriu o identificador
  • Parâmetro 4  —  Não usado

Informações adicionais
  • Camada de teste: Sistema de rede
  • ID da interrupção: WSP_LEAKED_SOCKET_HANDLE
  • Código de interrupção: 0000e006
  • Severidade:  Erro
  • Erro único: não
  • Relatório de erro: Interrupção
  • Registrar no arquivo: sim
  • Criar backtrace: sim

Uma API Winsock foi chamada antes de uma chamada WSAStartup() bem-sucedida ou depois que uma chamada WSACleanup() bem-sucedida de balanceamento foi feita

Causa provável

Uma chamada foi feita para uma API de sistema de rede antes de uma chamada WSAStarup() bem-sucedida ou após uma chamada WSACleanup() bem-sucedida de balanceamento. WSAStartup é necessário para fornecer uma contagem de referência por qualquer componente usando o Winsock para garantir a inicialização para uso da API Winsock. Um padrão de chamada WSAStartup/WSACleanup desbalanceado por um componente pode levar a um comportamento indefinido, pois pode fazer com que a camada Winsock descarregue bibliotecas e libere recursos enquanto ainda está em uso.

Informações exibidas pelo Application Verifier
  • Parâmetro 1  —  Última chamada WSAStartup bem-sucedida pelo chamador. Use dps para despejar a pilha se não for NULL
  • Parâmetro 2  —  Última chamada WSACleanup bem-sucedida pelo chamador. Use dps para despejar a pilha se não for NULL
  • Parâmetro 3  —  Última chamada WSAStartup bem-sucedida neste processo. Use dps para despejar a pilha se não for NULL
  • Parâmetro 4  —  Última chamada WSACleanup bem-sucedida neste processo. Use dps para despejar a pilha se não for NULL

Informações adicionais
  • Camada de teste: Sistema de rede
  • ID da interrupção: WSA_NOT_INITIALIZED
  • Código de interrupção: 0000e007
  • Severidade:  Erro
  • Erro único: não
  • Relatório de erro: Interrupção
  • Registrar no arquivo: sim
  • Criar backtrace: sim

API de sistema de rede chamada antes de uma chamada WSPStartup() bem-sucedida ou após uma chamada WSPCleanup() bem-sucedida de balanceamento ser feita

Causa provável

Uma chamada foi feita para uma API do provedor de serviços Winsock antes de uma chamada WSPStarup() bem-sucedida ou após uma chamada WSPCleanup() bem-sucedida de balanceamento. Isso geralmente aponta para uma falha em um provedor de serviços em camadas (LSP) Winsock específico em camadas entre o aplicativo e Winsock. O WSPStartup é necessário para fornecer uma contagem de referência por qualquer LSP usando o Winsock para garantir a inicialização para o uso da API do provedor de serviços Winsock. Um padrão de chamada WSPStartup/WSPCleanup desbalanceado por um LSP pode levar a um comportamento indefinido, pois pode fazer com que a camada Winsock descarregue bibliotecas e libere recursos enquanto ainda está em uso.

Informações exibidas pelo Application Verifier
  • Parâmetro 1  —  Última chamada WSPStartup bem-sucedida pelo chamador. Use dps para despejar a pilha se não for NULL
  • Parâmetro 2  —  Última chamada WSPCleanup bem-sucedida pelo chamador. Use dps para despejar a pilha se não for NULL
  • Parâmetro 3  —  Última chamada WSPStartup bem-sucedida neste processo. Use dps para despejar a pilha se não for NULL
  • Parâmetro 4  —  Última chamada WSPCleanup bem-sucedida neste processo. Use dps para despejar a pilha se não for NULL

Informações adicionais
  • Camada de teste: Sistema de rede
  • ID da interrupção: WSP_NOT_INITIALIZED
  • Código de interrupção: 0000e008
  • Severidade:  Erro
  • Erro único: não
  • Relatório de erro: Interrupção
  • Registrar no arquivo: sim
  • Criar backtrace: sim

Uma API do provedor de serviços de nome Winsock foi chamada antes de uma chamada NSPStartup() bem-sucedida ou depois que uma chamada NSPCleanup() bem-sucedida foi feita

Causa provável

Uma chamada foi feita para um provedor de serviços de nome Winsock antes de uma chamada NSPStarup() bem-sucedida ou depois de uma chamada NSPCleanup() bem-sucedida. Isso geralmente aponta para uma falha em um provedor de serviços de nome (NSP) Winsock específico em camadas entre o aplicativo e Winsock. O NSPStartup é necessário para fornecer uma contagem de referência por qualquer NSP usando o Winsock para garantir a inicialização para o uso da API do provedor de serviços de nome Winsock. Um padrão de chamada NSPStartup/NSPCleanup desbalanceado por um NSP pode levar a um comportamento indefinido, pois pode fazer com que a camada Winsock descarregue bibliotecas e libere recursos enquanto ainda está em uso.

Informações exibidas pelo Application Verifier
  • Parâmetro 1  —  Última chamada NSPStartup bem-sucedida pelo chamador. Use dps para despejar a pilha se não for NULL
  • Parâmetro 2  —  Última chamada NSPCleanup bem-sucedida pelo chamador. Use dps para despejar a pilha se não for NULL
  • Parâmetro 3  —  Última chamada NSPStartup bem-sucedida neste processo. Use dps para despejar a pilha se não for NULL
  • Parâmetro 4  —  Última chamada NSPCleanup bem-sucedida neste processo. Use dps para despejar a pilha se não for NULL

Informações adicionais
  • Camada de teste: Sistema de rede
  • ID da interrupção: NSP_NOT_INITIALIZED
  • Código de interrupção: 0000e009
  • Severidade:  Erro
  • Erro único: não
  • Relatório de erro: Interrupção
  • Registrar no arquivo: sim
  • Criar backtrace: sim

Uso de um ponteiro de função de extensão Winsock inválido detectado

Causa provável

As funções de extensão do Winsock da Microsoft podem ser chamadas somente consultando o Winsock quanto ao valor do ponteiro da função em tempo de execução. O tempo de execução do Winsock foi descarregado desde que o ponteiro de função foi retornado. O chamador provavelmente manteve uma cópia do ponteiro de função depois de chamar o WSACleanup e tentou reutilizá-lo.

Informações exibidas pelo Application Verifier
  • Parâmetro 1  —  Última chamada para obter um ponteiro de função Winsock. Use dps para despejar a pilha se não for NULL
  • Parâmetro 2  —  Última chamada que descarregou mswsock, invalidando os ponteiros de função. Use dps para despejar a pilha se não for NULL
  • Parâmetro 3  —  Não usado.
  • Parâmetro 4  —  Não usado.

Informações adicionais
  • Camada de teste: Sistema de rede
  • ID da interrupção: INVALID_FUNCTION_POINTER_DETECTED
  • Código de interrupção: 0000e00A
  • Severidade:  Erro
  • Erro único: não
  • Relatório de erro: Interrupção
  • Registrar no arquivo: sim
  • Criar backtrace: sim

WSACleanup abortou e fechou identificadores de SOQUETE existentes sob o código que possuía os SOQUETES

Causa provável

WSACleanup foi chamado para decremento da contagem de referência Winsock para 0 enquanto os identificadores de SOQUETE abertos existiam no processo. O Winsock fecha todos os identificadores de SOQUETE abertos quando a contagem de referência atinge zero. Isso normalmente é um bug em quem está diminuindo a contagem de referência do Winsock via WSACleanup com muita frequência (em desbalanceamento com WSAStartup), ou os identificadores de SOQUETE não estavam mais sendo rastreados corretamente pelo chamador (vazado). Digite k no depurador para mostrar quem está chamando WSACleanup no momento, levando a contagem de referência Winsock para 0.

Informações exibidas pelo Application Verifier
  • Parâmetro 1  —  Número de soquetes pendentes
  • Parâmetro 2  —  Não usado.
  • Parâmetro 3  —  Não usado.
  • Parâmetro 4  —  Não usado.

Informações adicionais
  • Camada de teste: Sistema de rede
  • ID da interrupção: WSA_SOCKETS_ABORTED
  • Código de interrupção: 0000e00B
  • Severidade:  Erro
  • Erro único: não
  • Relatório de erro: Interrupção
  • Registrar no arquivo: sim
  • Criar backtrace: sim

WSPCleanup abortou e fechou os identificadores de SOQUETE do provedor de serviços existente pelo código que possuía esses SOQUETES

Causa provável

O WSPCleanup foi chamado por um provedor de serviços em camadas (LSP) em decremento da contagem de referência do Winsock para 0 enquanto os identificadores de SOQUETE abertos existiam nesse processo. O Winsock fecha todos os identificadores de SOQUETE abertos quando a contagem de referência atinge zero. Isso normalmente é um bug no LSP que está diminuindo a contagem de referência do Winsock via WSPCleanup com muita frequência (em desbalanceamento com WSPStartup), ou os identificadores de SOQUETE não estavam mais sendo rastreados corretamente pelo chamador (vazado). Digite k no depurador para mostrar quem está chamando WSPCleanup no momento, levando a contagem de referência Winsock para 0.

Informações exibidas pelo Application Verifier
  • Parâmetro 1  —  Número de soquetes de provedor de serviços pendentes
  • Parâmetro 2  —  Não usado.
  • Parâmetro 3  —  Não usado.
  • Parâmetro 4  —  Não usado.

Informações adicionais
  • Camada de teste: Sistema de rede
  • ID da interrupção: WSP_SOCKETS_ABORTED
  • Código de interrupção: 0000e00C
  • Severidade:  Erro
  • Erro único: não
  • Relatório de erro: Nenhum
  • Registrar no arquivo: sim
  • Criar backtrace: sim

O valor de retorno imediato, ou GetLastError, é inválido para a chamada Winsock atual. Isso geralmente aponta para uma falha em um provedor de serviços

Causa provável

O valor que está sendo retornado, ou o valor atual em GetLastError, não está seguindo a especificação do Winsock 2. Isso geralmente aponta para um bug em um provedor de serviços em camadas (LSP) — uma DLL em camadas entre o aplicativo e o Winsock. Nesses casos, um LSP quebrou o contrato de API do Winsock e está retornando um valor falso para o chamador. Use ln no parâmetro 3 no depurador para localizar a função na DLL que retornou o código de retorno incorreto. Exiba os parâmetros 1 e 2 para ver qual era o valor incorreto em relação à chamada Winsock realizada. Exiba o parâmetro 4 se a chamada tiver sido para qualquer função Winsock send ou recv para ver o número real de bytes solicitados a serem enviados ou recebidos. É inválido que o número retornado de bytes seja maior do que o número de bytes solicitados a serem enviados ou recebidos.

Informações exibidas pelo Application Verifier
  • Parâmetro 1  —  Valor de retorno
  • Parâmetro 2  —  GetLastError
  • Parâmetro 3  —  Ponteiro de função para o próximo provedor de serviços. Use ln para ver quem acabou de retornar esse valor
  • Parâmetro 4  —  Para enviar/receber dados, o número real de bytes lançados na API

Informações adicionais
  • Camada de teste: Sistema de rede
  • ID da interrupção: WSA_RETURN_INVALID
  • Código de interrupção: 0000e00D
  • Severidade:  Erro
  • Erro único: não
  • Relatório de erro: Interrupção
  • Registrar no arquivo: sim
  • Criar backtrace: sim

O valor de retorno, ou lpError, é inválido para a chamada Winsock atual. Isso geralmente aponta para uma falha em um provedor de serviços de base ou na pilha de rede

Causa provável

O valor que está sendo retornado, ou o valor atual em IpError, não está seguindo a especificação do Winsock 2. Isso geralmente aponta para um bug em um provedor de serviços de base carregado (geralmente mswsock.dll) ou na pilha de rede. Use ln no parâmetro 3 no depurador para localizar a função na DLL que retornou o código de retorno incorreto. Exiba os parâmetros 1 e 2 para ver qual era o valor incorreto em relação à chamada Winsock realizada. Exiba o parâmetro 4 se a chamada tiver sido para qualquer função Winsock send ou recv para ver o número real de bytes solicitados a serem enviados ou recebidos. É inválido que o número retornado de bytes seja maior do que o número de bytes solicitados a serem enviados ou recebidos.

Informações exibidas pelo Application Verifier
  • Parâmetro 1  —  Valor de retorno
  • Parâmetro 2  —  GetLastError
  • Parâmetro 3  —  Ponteiro de função para o próximo provedor de serviços. Use ln para ver quem acabou de retornar esse valor
  • Parâmetro 4  —  Para enviar/receber dados, o número real de bytes lançados na API

Informações adicionais
  • Camada de teste: Sistema de rede
  • ID da interrupção: WSP_RETURN_INVALID
  • Código de interrupção: 0000e00E
  • Severidade:  Erro
  • Erro único: não
  • Relatório de erro: Interrupção
  • Registrar no arquivo: sim
  • Criar backtrace: sim

Confira também

Application Verifier - Códigos de parada e definições

Application Verifier — Visão geral

Application Verifier - Recursos

Application Verifier - Testando aplicativos

Application Verifier - Testes dentro do Application Verifier

Application Verifier -Depurando paradas do Application Verifier

Application Verifier - Perguntas frequentes