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」を参照してください。
注釈
このメソッドは、メッセージ キューからメッセージを削除しません。
このメソッドは、オプションの取得フィルターが適用された後、メッセージ キューからメッセージを取得します。
このメソッドを 2 回呼び出してメッセージを取得し、最初にメッセージのサイズを取得し、次にメッセージを取得します。 一般的な例を次に示します。
// 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 |
ヘッダー | dxgidebug.h |
[DLL] | DXGIDebug.dll |