Compartilhar via


Método IDXGIInfoQueue::GetMessage (dxgidebug.h)

Obtém uma mensagem da fila de mensagens.

Sintaxe

HRESULT GetMessage(
  [in]            DXGI_DEBUG_ID           Producer,
  [in]            UINT64                  MessageIndex,
  [out, optional] DXGI_INFO_QUEUE_MESSAGE *pMessage,
  [in, out]       SIZE_T                  *pMessageByteLength
);

Parâmetros

[in] Producer

Um valor DXGI_DEBUG_ID que identifica a entidade que obtém a mensagem.

[in] MessageIndex

Um índice na fila de mensagens após a aplicação de um filtro de recuperação opcional. Isso pode ser entre 0 e o número de mensagens na fila de mensagens que passam pelo filtro de recuperação. Chame IDXGIInfoQueue::GetNumStoredMessagesAllowedByRetrievalFilters para obter esse número. 0 é a mensagem no início da fila de mensagens.

[out, optional] pMessage

Um ponteiro para uma estrutura DXGI_INFO_QUEUE_MESSAGE que descreve a mensagem.

[in, out] pMessageByteLength

Um ponteiro para uma variável que recebe o tamanho, em bytes, da descrição da mensagem para a qual pMessage aponta. Esse tamanho inclui o tamanho da estrutura DXGI_INFO_QUEUE_MESSAGE em bytes.

Retornar valor

Retorna S_OK se tiver êxito; caso contrário, um código de erro. Para obter uma lista de códigos de erro, consulte DXGI_ERROR.

Comentários

Esse método não remove nenhuma mensagem da fila de mensagens.

Esse método obtém uma mensagem da fila de mensagens depois que um filtro de recuperação opcional é aplicado.

Chame esse método duas vezes para recuperar uma mensagem, primeiro para obter o tamanho da mensagem e o segundo para obter a mensagem. Aqui está um exemplo típico:


// Get the size of the message.
SIZE_T messageLength = 0;
HRESULT hr = pInfoQueue->GetMessage(DXGI_DEBUG_ALL, 0, NULL, &messageLength);
if(hr == S_FALSE){

    // Allocate space and get the message.
    DXGI_INFO_QUEUE_MESSAGE * pMessage = (DXGI_INFO_QUEUE_MESSAGE*)malloc(messageLength);
    hr = pInfoQueue->GetMessage(DXGI_DEBUG_ALL, 0, pMessage, &messageLength);
    
    // Do something with the message and free it
    if(hr == S_OK){
    
        // ...
        // ...
        // ...
        free(pMessage);
    }
}
Nota Essa API requer o SDK (Software Development Kit) do Windows para Windows 8.
 

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho dxgidebug.h
DLL DXGIDebug.dll

Confira também

IDXGIInfoQueue