Метод IDXGIInfoQueue::GetMessage (dxgidebug.h)
Получает сообщение из очереди сообщений.
Синтаксис
HRESULT GetMessage(
[in] DXGI_DEBUG_ID Producer,
[in] UINT64 MessageIndex,
[out, optional] DXGI_INFO_QUEUE_MESSAGE *pMessage,
[in, out] SIZE_T *pMessageByteLength
);
Параметры
[in] Producer
Значение DXGI_DEBUG_ID , определяющее сущность, которая получает сообщение.
[in] MessageIndex
Индекс в очереди сообщений после применения необязательного фильтра извлечения. Это может быть от 0 до количества сообщений в очереди сообщений, проходящих через фильтр извлечения. Вызовите IDXGIInfoQueue::GetNumStoredMessagesAllowedByRetrievalFilters , чтобы получить этот номер. 0 — это сообщение в начале очереди сообщений.
[out, optional] pMessage
Указатель на структуру DXGI_INFO_QUEUE_MESSAGE , описывающую сообщение.
[in, out] pMessageByteLength
Указатель на переменную, которая получает размер (в байтах) описания сообщения, на которое указывает pMessage . Этот размер включает размер структуры DXGI_INFO_QUEUE_MESSAGE в байтах.
Возвращаемое значение
В случае успешного выполнения возвращает S_OK; код ошибки в противном случае. Список кодов ошибок см. в разделе DXGI_ERROR.
Комментарии
Этот метод не удаляет сообщения из очереди сообщений.
Этот метод получает сообщение из очереди сообщений после применения необязательного фильтра извлечения.
Вызовите этот метод дважды, чтобы получить сообщение, сначала для получения размера сообщения, а затем для получения сообщения. Ниже приведен типичный пример:
// 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);
}
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2012 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | dxgidebug.h |
DLL | DXGIDebug.dll |