Compartilhar via


Função ShutdownBlockReasonQuery (winuser.h)

Recupera a cadeia de caracteres de motivo definida pela função ShutdownBlockReasonCreate .

Sintaxe

BOOL ShutdownBlockReasonQuery(
  [in]            HWND   hWnd,
  [out, optional] LPWSTR pwszBuff,
  [in, out]       DWORD  *pcchBuff
);

Parâmetros

[in] hWnd

Um identificador para a janela main do aplicativo.

[out, optional] pwszBuff

Um ponteiro para um buffer que recebe a cadeia de caracteres de motivo. Se esse parâmetro for NULL, a função recuperará o número de caracteres na cadeia de caracteres de motivo.

[in, out] pcchBuff

Um ponteiro para uma variável que especifica o tamanho do buffer pwszBuff , em caracteres. Se a função for bem-sucedida, essa variável receberá o número de caracteres copiados para o buffer, incluindo o caractere de terminação nula. Se o buffer for muito pequeno, a variável receberá o tamanho do buffer necessário, em caracteres, sem incluir o caractere de terminação nula.

Retornar valor

Se a chamada for bem-sucedida, o valor retornado será diferente de zero.

Se a chamada falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Essa função só pode ser chamada do thread que criou a janela especificada pelo parâmetro hWnd . Caso contrário, a função falhará e o último código de erro será ERROR_ACCESS_DENIED.

Exemplos

O exemplo a seguir recupera o tamanho do buffer necessário, aloca memória para a cadeia de caracteres de motivo, recupera a cadeia de caracteres de motivo e exibe a cadeia de caracteres como saída de depuração.

#include <windows.h>

#pragma comment(lib, "User32.lib")

HWND hWnd;

BOOL DisplayShutdownBlockReason()
{
    DWORD cch=0;

    if (ShutdownBlockReasonQuery(hWnd, NULL, &cch)) 
    { 
        WCHAR *pch = (WCHAR *)LocalAlloc(LMEM_FIXED, cch * sizeof(*pch)); 
        if (NULL != pch) 
        { 
            if (ShutdownBlockReasonQuery(hWnd, pch, &cch)) 
            { 
                OutputDebugStringW(L"Shutdown block reason: "); 
                OutputDebugStringW(pch); 
                OutputDebugStringW(L"\n"); 
            } 
            LocalFree(pch); 
            return TRUE;
        } 
    }
    return FALSE;
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll

Confira também

ShutdownBlockReasonCreate

Desligar