DXGKARG_COLLECTDBGINFO2 구조체(d3dkmddi.h)
DXGKARG_COLLECTDBGINFO 구조는 DxgkDdiCollectDbgInfo2가 호출되는 경우 디버그 보고서에 대한 정보를 설명합니다.
구문
typedef struct _DXGKARG_COLLECTDBGINFO2 {
UINT Reason;
VOID *pBuffer;
SIZE_T BufferSize;
DXGKARG_COLLECTDBGINFO_EXT *pExtension;
DXGK_TDR_TYPE TdrType;
UINT TdrPayloadSize;
VOID *TdrPayload;
} DXGKARG_COLLECTDBGINFO2;
멤버
Reason
[in] pBuffer가 가리키는 버퍼에서 디버그 정보를 반환할 버그 검사 코드입니다. 가능한 값은 다음과 같습니다.
값 | 의미 |
---|---|
VIDEO_TDR_TIMEOUT_DETECTED 0x117 | DxgkDdiResetEngine 작업에서 논리 어댑터를 다시 설정했습니다. |
VIDEO_ENGINE_TIMEOUT_DETECTED 0x141 | DxgkDdiResetEngine 작업은 물리적 어댑터 내에서 하나 이상의 노드를 다시 설정했습니다. Windows 8 시작해서 사용할 수 있습니다. |
pBuffer
[out] Reason 에서 지정하는 이유로 디버그 정보를 수신하는 버퍼에 대한 포인터입니다.
BufferSize
pBuffer가 가리키는 버퍼에 복사할 최대 크기(바이트)입니다.
pExtension
드라이버가 필요에 따라 디버그 확장 정보로 채우는 OS 할당 DXGKARG_COLLECTDBGINFO_EXT 구조체에 대한 포인터입니다.
TdrType
[in] 발생한 TDR의 형식을 지정하는 DXGK_TDR_TYPE 값입니다 .
TdrPayloadSize
[in] TdrPayload 가 가리키는 TDR 페이로드의 크기(바이트)입니다.
TdrPayload
[in] 다음 표와 같이 특정 TdrType 값과 관련된 페이로드를 포함하는 버퍼에 대한 포인터입니다. 이 버퍼는 NULL일 수 있습니다.
TdrType | 연결된 구조체 |
---|---|
DXGK_TDR_TYPE_ENGINE_TIMEOUT | TdrPayload 는 DXGK_TDR_PAYLOAD_ENGINE_TIMEOUT 구조를 가리킵니다. |
DXGK_TDR_TYPE_VSYNC_TIMEOUT | TdrPayload 는 DXGK_TDR_PAYLOAD_VSYNC_TIMEOUT 구조를 가리킵니다. |
설명
DXGKARG_COLLECTDBGINFO2 레이아웃은 DxgkDdiCollectDbgInfo2 구현이 필요에 따라 기존 DxgkDdiCollectDbgInfo 도우미를 다시 사용할 수 있도록 DXGKARG_COLLECTDBGINFO 이전 버전과 호환됩니다. 이러한 이유로 Reason, pBuffer, BufferSize 및 pExtension 필드는 동일한 의미 체계를 갖습니다.
일부 TDR 형식(TdrType에 지정됨)의 경우 OS는 TdrPayloadSize 바이트의 TdrPayload 버퍼에 추가 정보를 제공합니다. NULL일 수 있으며 드라이버는 충돌하지 않고 이 사례를 처리해야 합니다.
페이로드가 NULL이 아닌 경우 TDR 형식에 해당하는 구조체로 캐스팅할 수 있습니다. OS는 이전 버전과 호환되는 방식으로 이러한 구조를 확장하여 끝에 새 필드를 추가할 수 있습니다. 드라이버는 TdrPayload 필드에 액세스하기 전에 TdrPayloadSize를 검사 OS가 원하는 페이로드 버전 이상을 구현하는지 확인해야 합니다.
TdrPayload가 가리키는 메모리는 DxgkddiCollectDbgInfo2 호출 기간 동안만 유효합니다. 드라이버는 DxgkddiCollectDbgInfo2 호출의 끝을 지나 TdrPayload에 대한 포인터를 저장하면 안 됩니다.
자세한 내용은 TDR 디버깅 기능 향상을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 11 버전 24H2(WDDM 3.2) |
머리글 | d3dkmddi.h |