다음을 통해 공유


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);
    }
}
참고 이 API에는 Windows 8 Windows SDK(소프트웨어 개발 키트)가 필요합니다.
 

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 dxgidebug.h
DLL DXGIDebug.dll

추가 정보

IDXGIInfoQueue