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