Partager via


IDXGIInfoQueue ::GetMessage, méthode (dxgidebug.h)

Obtient un message de la file d’attente des messages.

Syntaxe

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

Paramètres

[in] Producer

Valeur DXGI_DEBUG_ID qui identifie l’entité qui obtient le message.

[in] MessageIndex

Index dans la file d’attente des messages après l’application d’un filtre de récupération facultatif. Cela peut être compris entre 0 et le nombre de messages dans la file d’attente de messages qui passent par le filtre de récupération. Appelez IDXGIInfoQueue ::GetNumStoredMessagesAllowedByRetrievalFilters pour obtenir ce numéro. 0 est le message au début de la file d’attente des messages.

[out, optional] pMessage

Pointeur vers une structure DXGI_INFO_QUEUE_MESSAGE qui décrit le message.

[in, out] pMessageByteLength

Pointeur vers une variable qui reçoit la taille, en octets, de la description du message vers laquelle pMessage pointe. Cette taille inclut la taille de la structure DXGI_INFO_QUEUE_MESSAGE en octets.

Valeur retournée

Retourne S_OK en cas de réussite ; un code d’erreur dans le cas contraire. Pour obtenir la liste des codes d’erreur, consultez DXGI_ERROR.

Remarques

Cette méthode ne supprime aucun message de la file d’attente des messages.

Cette méthode obtient un message de la file d’attente des messages après l’application d’un filtre de récupération facultatif.

Appelez cette méthode deux fois pour récupérer un message, d’abord pour obtenir la taille du message, puis pour obtenir le message. Voici un exemple typique :


// 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);
    }
}
Note Cette API nécessite le Kit de développement logiciel (SDK) Windows pour Windows 8.
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête dxgidebug.h
DLL DXGIDebug.dll

Voir aussi

IDXGIInfoQueue