다음을 통해 공유


PFND3DKMT_OUTPUTDUPLPRESENT 콜백 함수(d3dkmthk.h)

DWM(데스크톱 창 관리자)의 데스크톱 중복 API 스왑 체인에서 Microsoft DirectX 그래픽 커널 하위 시스템(Dxgkrnl.sys)으로 현재 명령을 제출합니다.

구문

PFND3DKMT_OUTPUTDUPLPRESENT Pfnd3dkmtOutputduplpresent;

NTSTATUS Pfnd3dkmtOutputduplpresent(
  [in] const D3DKMT_OUTPUTDUPLPRESENT *unnamedParam1
)
{...}

매개 변수

[in] unnamedParam1

pData

현재 작업에 대한 매개 변수를 설명하는 D3DKMT_OUTPUTDUPLPRESENT 구조체에 대한 포인터입니다.

반환 값

다음 값 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS 현재 작업이 성공적으로 수행되었습니다.
STATUS_DEVICE_REMOVED 그래픽 어댑터가 중지되었거나 디스플레이 컨텍스트가 다시 설정되었습니다.
STATUS_INVALID_PARAMETER 매개 변수의 유효성이 검사되었고 잘못된 것으로 확인되었습니다.
STATUS_NO_MEMORY 메모리가 부족하여 D3DKMTOutputDuplPresent를 완료할 수 없습니다.
STATUS_GRAPHICS_ALLOCATION_INVALID 디스플레이 모드 변경으로 인해 기본 표면 핸들이 무효화되었습니다. OpenGL ICD(설치 가능 클라이언트 드라이버)가 이 오류 코드를 수신하는 경우 기본 핸들을 다시 열거나 다시 만들고 명령 버퍼의 모든 참조를 이전 핸들로 바꾼 다음 버퍼를 다시 제출해야 합니다.
STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE D3DKMT_OUTPUTDUPLPRESENT hContext 멤버가 지정하는 렌더링 디바이스 컨텍스트에서 오류가 발생했습니다.
참고: 이 오류 코드는 TDR(시간 제한 검색 및 복구) 프로세스의 시작 또는 GPU가 응답을 중지했음을 나타내지 않습니다.
예를 들어 DirectX 그래픽 커널 하위 시스템은 디스플레이 미니포트 드라이버가 이 디바이스에서 제출된 DMA 버퍼에 오류가 발생했음을 나타내거나 비디오 메모리 관리자가 DMA 버퍼를 분할한 후에도 DMA 버퍼에 필요한 모든 할당을 페이지 인할 수 없는 경우 디바이스를 오류 상태로 만듭니다. 디바이스가 오류 상태에 있으면 더 이상 작업을 수행할 수 없으며 제거한 후 다시 만들어야 합니다. ICD는 D3DKMTGetDeviceState 함수를 호출하여 오류에 대한 보다 정확한 이유를 확인할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
지원되는 최소 서버 Windows Server 2012
대상 플랫폼 유니버설
헤더 d3dkmthk.h(D3dkmthk.h 포함)

추가 정보

D3DKMTGetDeviceState

D3DKMT_OUTPUTDUPLPRESENT