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);
}
}
注意此 API 需要適用於 Windows 8 的 Windows 軟體開發工具包 (SDK) 。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2012 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | dxgidebug.h |
Dll | DXGIDebug.dll |