共用方式為


ID3D12InfoQueue::GetMessage 方法 (d3d12sdklayers.h)

從訊息佇列取得訊息。

語法

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

參數

[in] MessageIndex

類型: UINT64

套用選擇性擷取篩選準則之後,將索引編制至訊息佇列。 這可以是介於 0 到訊息佇列中通過擷取篩選準則的訊息數目, (可使用 GetNumStoredMessagesAllowedByRetrievalFilter) 取得。 0 是訊息佇列前端的訊息。

[out, optional] pMessage

類型: D3D12_MESSAGE*

傳回的訊息。

[in, out] pMessageByteLength

類型: SIZE_T*

以位元組為單位的 pMessage 大小。

傳回值

類型: HRESULT

這個方法會傳回其中一個 Direct3D 12 傳回碼

備註

這個方法不會從訊息佇列中移除任何訊息。

此方法會在套用選擇性擷取篩選準則之後,從訊息佇列取得訊息。

應用程式應該呼叫這個方法兩次來擷取訊息 - 首先取得訊息的大小,第二個取得訊息。 以下是典型的範例:

 
// Get the size of the message
SIZE_T messageLength = 0;
HRESULT hr = pInfoQueue->GetMessage(0, NULL, &messageLength);

// Allocate space and get the message
D3D12_MESSAGE * pMessage = (D3D12_MESSAGE*)malloc(messageLength);
hr = pInfoQueue->GetMessage(0, pMessage, &messageLength); 

需求

   
目標平台 Windows
標頭 d3d12sdklayers.h

另請參閱

ID3D12InfoQueue