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);
}
}
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 |