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에서 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);
}
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2012 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | dxgidebug.h |
DLL | DXGIDebug.dll |