Condividi tramite


Metodo IDXGIInfoQueue::GetMessage (dxgidebug.h)

Ottiene un messaggio dalla coda del messaggio.

Sintassi

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

Parametri

[in] Producer

Valore DXGI_DEBUG_ID che identifica l'entità che ottiene il messaggio.

[in] MessageIndex

Indice nella coda dei messaggi dopo l'applicazione di un filtro di recupero facoltativo. Ciò può essere compreso tra 0 e il numero di messaggi nella coda del messaggio che passano il filtro di recupero. Chiamare IDXGIInfoQueue::GetNumStoredMessagesAllowedByRetrievalFilters per ottenere questo numero. 0 è il messaggio all'inizio della coda del messaggio.

[out, optional] pMessage

Puntatore a una struttura DXGI_INFO_QUEUE_MESSAGE che descrive il messaggio.

[in, out] pMessageByteLength

Puntatore a una variabile che riceve le dimensioni, in byte, della descrizione del messaggio a cui punta pMessage . Questa dimensione include le dimensioni della struttura DXGI_INFO_QUEUE_MESSAGE in byte.

Valore restituito

Restituisce S_OK se ha esito positivo; codice di errore in caso contrario. Per un elenco di codici di errore, vedere DXGI_ERROR.

Commenti

Questo metodo non rimuove messaggi dalla coda dei messaggi.

Questo metodo ottiene un messaggio dalla coda di messaggi dopo l'applicazione di un filtro di recupero facoltativo.

Chiamare questo metodo due volte per recuperare un messaggio, prima per ottenere le dimensioni del messaggio e il secondo per ottenere il messaggio. Ecco un esempio tipico:


// 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 Questa API richiede Windows Software Development Kit (SDK) per Windows 8.
 

Requisiti

Requisito Valore
Client minimo supportato Windows 8 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione dxgidebug.h
DLL DXGIDebug.dll

Vedi anche

IDXGIInfoQueue