다음을 통해 공유


DXGKDDI_COLLECTDIAGNOSTICINFO 콜백 함수(dispmprt.h)

DxgkDdiCollectDiagnosticInfo 콜백 루틴은 DXGK_DIAGNOSTICINFO_TYPE지정된 이유로 프라이빗 드라이버 정보를 수집합니다.

Windows 10 버전 1903에서는 함수가 DxgkDdiAddDevice 호출하거나 DxgkDdiStartDevice 실패한 경우 드라이버가 개인 정보를 수집하도록 호출됩니다.

통사론

DXGKDDI_COLLECTDIAGNOSTICINFO DxgkddiCollectdiagnosticinfo;

NTSTATUS DxgkddiCollectdiagnosticinfo(
  [in]      IN_CONST_PDEVICE_OBJECT PhysicalDeviceObject,
  [in, out] INOUT_PDXGKARG_COLLECTDIAGNOSTICINFO pCollectDiagnosticInfo
)
{...}

매개 변수

[in] PhysicalDeviceObject

디스플레이 어댑터를 식별하는 PDO(물리적 디바이스 개체)에 대한 포인터입니다.

[in, out] pCollectDiagnosticInfo

드라이버에서 수집한 정보를 설명하는 DXGKARG_COLLECTDIAGNOSTICINFO 구조체에 대한 포인터입니다.

반환 값

개인 데이터 정보가 성공적으로 수집되었는지 STATUS_SUCCESS 반환합니다. 그렇지 않으면 다음 중 하나와 같은 오류 코드를 반환합니다.

오류 코드 의미
STATUS_DRIVER_INTERNAL_ERROR 드라이버 내에서 일반적인 SW 오류가 발생했습니다.
STATUS_ACCESS_DENIED 하드웨어는 현재 다른 스레드에서 사용되고 있으며 이 DDI는 해당 하드웨어에 액세스할 수 없습니다.
STATUS_DEVICE_HARDWARE_ERROR 일반 HW 오류가 발생했습니다.
STATUS_DEVICE_POWERED_OFF 디바이스 전원이 꺼져 있습니다.

발언

이 함수는 DxgkDdiAddDeviceDxgkDdiStartDevice호출 사이에 언제든지 PASSIVE 수준에서 호출되며 동기화 0 수준지원해야 합니다. 수집된 데이터에는 개인 사용자 정보가 포함되어서는 안 됩니다.

WDDM 2.7 이상 드라이버는 블랙 스크린 블랙 박스 데이터 수집에 대한 DXGK_DI_BLACKSCREENDXGK_DIAGNOSTICINFO_TYPE 열거형 유형을 지원해야 합니다.

검은색 화면 시나리오의 경우 OS는 먼저 DxgkDdiGetDisplayStateNonIntrusive 호출하고 이 DDI를 호출하기 전에 DxgkDdiGetDisplayStateIntrusive 드라이버에서 화이트 박스 데이터를 수집합니다.

pCollectDiagnosticInfo->BucketingString 사용하여 가능한 경우 블랙박스 데이터를 버킷팅하는 것이 좋습니다. BufferSizeIn 입력 버퍼의 크기가 모든 블랙 박스 데이터에 충분하지 않은 경우 드라이버는 대부분의 검은색 화면 근본 원인 분석에서 가장 중요하지 않은 데이터를 제외하는 데 있어 자체적인 절충을 수행해야 합니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 10 버전 1903
헤더 dispmprt.h
IRQL PASSIVE_LEVEL

참고 항목

DXGKARG_COLLECTDIAGNOSTICINFO

DxgkDdiAddDevice

DxgkDdiStartDevice