Compartir a través de


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

Obtiene un mensaje de la cola de mensajes.

Sintaxis

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

Valor de DXGI_DEBUG_ID que identifica la entidad que obtiene el mensaje.

[in] MessageIndex

Índice en la cola de mensajes después de aplicar un filtro de recuperación opcional. Esto puede estar comprendido entre 0 y el número de mensajes de la cola de mensajes que pasan por el filtro de recuperación. Llame a IDXGIInfoQueue::GetNumStoredMessagesAllowedByRetrievalFilters para obtener este número. 0 es el mensaje al principio de la cola de mensajes.

[out, optional] pMessage

Puntero a una estructura de DXGI_INFO_QUEUE_MESSAGE que describe el mensaje.

[in, out] pMessageByteLength

Puntero a una variable que recibe el tamaño, en bytes, de la descripción del mensaje a la que apunta pMessage . Este tamaño incluye el tamaño de la estructura de DXGI_INFO_QUEUE_MESSAGE en bytes.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente; de lo contrario, un código de error. Para obtener una lista de códigos de error, consulte DXGI_ERROR.

Comentarios

Este método no quita ningún mensaje de la cola de mensajes.

Este método obtiene un mensaje de la cola de mensajes después de aplicar un filtro de recuperación opcional.

Llame a este método dos veces para recuperar un mensaje, primero para obtener el tamaño del mensaje y el segundo para obtener el mensaje. Este es un ejemplo 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 Esta API requiere el Kit de desarrollo de software (SDK) de Windows para Windows 8.
 

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2012 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado dxgidebug.h
Archivo DLL DXGIDebug.dll

Consulte también

IDXGIInfoQueue