共用方式為


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

另請參閱

IDXGIInfoQueue