Compartilhar via


Função WerReportHang (errorrep.h)

Inicia relatórios "sem resposta" na janela especificada.

Sintaxe

HRESULT WerReportHang(
  [in]           HWND   hwndHungApp,
  [in, optional] PCWSTR pwzHungApplicationName
);

Parâmetros

[in] hwndHungApp

Identificador para a janela que não está respondendo.

[in, optional] pwzHungApplicationName

O nome do aplicativo que não responde a ser mostrado na interface do usuário do Hang Reporting. O nome é limitado a 128 caracteres, incluindo o terminador NULL . Se FOR NULL, o WER tentará obter o nome dos recursos de imagem de destino. Se ele não conseguir obter o nome da imagem, o nome da imagem será usado.

Valor retornado

Retorna S_OK se a função foi capaz de iniciar o relatório ou um código de erro em caso de falha. Observe que S_OK não significa necessariamente que o relatório "sem resposta" foi concluído com êxito, apenas que foi iniciado.

Comentários

Cuidado Os aplicativos não devem usar essa API para relatar nenhuma resposta de janelas de nível superior; A detecção e os relatórios sem resposta estão disponíveis para todas as janelas de nível superior no Windows XP e posterior por padrão. Você só deve usar essa função para relatar nenhuma resposta de janelas filho. Normalmente, você usaria essa função somente quando a janela de nível superior e suas janelas filho pertencessem a processos diferentes e uma não resposta fosse detectada em uma janela filho.
 
Essa função iniciará relatórios sem resposta que, em seguida, encerrarão o processo que criou a janela. O chamador é responsável por determinar quando uma janela filho não está respondendo e deve solicitar o consentimento do usuário antes de relatar a não resposta. Uma maneira típica de detectar uma janela que não está respondendo é marcar que ela responde às mensagens de janela em tempo hábil. Você pode usar a função SendMessageTimeout para detectar essa condição.

Essa função é assíncrona; ele não aguarda a conclusão do relatório sem resposta. Não há como cancelar o relatório sem resposta depois que ele é iniciado.

Se você usar essa função, é importante seguir os seguintes requisitos:

  • Verifique se as janelas filho são criadas por um processo separado. Depois que o relatório sem resposta for concluído, ele encerrará o processo que criou a janela.
  • Forneça pistas visuais na janela filho de que ela não está respondendo; O relatório sem resposta não escurecerá a janela filho, ele mostrará apenas a caixa de diálogo de relatório.
  • Confirme se o usuário deseja encerrar a janela filho que não está respondendo antes de chamar essa função.
  • Para que a interface do usuário de relatório sem resposta apareça na frente da janela que não está respondendo, o aplicativo deve chamar a função AllowSetForegroundWindow (passando ASFW_ANY para o identificador de processo) do processo da janela de nível superior.

Requisitos

   
Cliente mínimo com suporte Windows Vista com SP1 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho errorrep.h
Biblioteca Faultrep.lib
DLL Faultrep.dll