DXGKARG_COMMITVIDPN_FLAGS 구조체(d3dkmddi.h)

DXGKARG_COMMITVIDPN_FLAGS 구조체는 DxgkDdiCommitVidPn 함수 호출에 대한 세부 정보를 식별합니다.

구문

typedef struct _DXGKARG_COMMITVIDPN_FLAGS {
  UINT PathPowerTransition : 1;
  UINT PathPoweredOff : 1;
  UINT Reserved : 30;
} DXGKARG_COMMITVIDPN_FLAGS;

멤버

PathPowerTransition

Microsoft DirectX 그래픽 커널 하위 시스템이 연결된 모니터의 전원을 끄기 위해 DxgkDdiCommitVidPn 함수를 호출하는지 여부를 지정하는 UINT 값입니다.

PathPowerTransitionTRUE로 설정된 경우 디스플레이 미니포트 드라이버는 전원이 끄기 위해 이 호출을 최적화할 수 있습니다(예: 드라이버가 세로 동기화를 사용하지 않도록 설정할 수 있습니다). 또한 드라이버는 영향을 받는 원본에서 해당 DxgkDdiPresent 함수에 대한 호출을 계속 받을 수 있음을 알고 있어야 합니다.

이 멤버를 설정하는 것은 32비트 값(0x00000001)의 첫 번째 비트를 설정하는 것과 같습니다.

자세한 내용은 아래 설명 부분을 참조하십시오.

PathPoweredOff

DirectX 그래픽 커널 하위 시스템이 DxgkDdiCommitVidPn 을 호출하여 사용자가 모드를 변경했음을 드라이버에 알리는지 여부를 지정하는 UINT 값입니다.

PathPoweredOffTRUE로 설정된 경우 디스플레이 미니포트 드라이버는 새 토폴로지를 기반으로 하는 현재 작업을 예상해야 합니다. 이제 모니터의 전원을 꺼야 하므로 드라이버가 토폴로지 경로의 전원을 다시 켜는 작업을 수행할 수 없습니다(예: 드라이버는 세로 동기화를 사용하도록 설정할 수 없음).

PathPoweredOffFALSE로 설정되면 토폴로지 경로가 켜집니다. 디스플레이 미니포트 드라이버는 이전 토폴로지 경로를 기반으로 하는 현재 작업을 위해 하드웨어를 프로그래밍해야 하며, 드라이버는 이 토폴로지 경로를 지원하기 위해 하드웨어를 커밋해야 합니다. 이 멤버를 설정하는 것은 32비트 값(0x00000002)의 두 번째 비트를 설정하는 것과 같습니다.

자세한 내용은 아래 설명 부분을 참조하십시오.

Reserved

이 멤버는 예약되어 있으며 0으로 설정해야 합니다. 이 멤버를 0으로 설정하는 것은 32비트 값의 나머지 30비트(0xFFFFFFFC)를 0으로 설정하는 것과 같습니다.

설명

DXGKARG_COMMITVIDPN_FLAGS 구조체는 디스플레이 미니포트 드라이버가 요청된 모드 변경에 응답하는 방법을 결정하는 데 사용할 수 있는 정보를 저장합니다. 이 정보를 사용하면 애플리케이션이 모드 변경을 요청했기 때문에 드라이버가 정기적인 작업 중에 발생하는 모드 변경 내용, 전원 전환으로 인해 발생하는 변경 내용 및 모니터가 꺼져 있는 동안 발생하는 변경 내용을 구분할 수 있습니다.

일반 작업 중에 DxgkDdiCommitVidPn 함수가 호출되면 PathPowerTransitionPathPoweredOff 멤버는 모두 FALSE 가 되므로 드라이버가 모드 변경 내용을 즉시 적용해야 합니다. 이러한 모드 변경은 일반적으로 격리된 이벤트로 수행됩니다. 따라서 드라이버가 이전 모드 구성과 연결된 상태를 추적할 필요가 없습니다.

모니터가 꺼지거나 켜져 있는 경우 PathPowerTransition 은 전원 전환을 나타내기 위해 TRUE 가 됩니다. 이 경우 일반적인 패턴은 모니터가 꺼지고 나중에 원래 구성이 복원된다는 것입니다. 시스템이 종료된 후 드라이버가 디스플레이 구성을 완전히 다시 설정하는 것은 상당한 워크로드일 수 있습니다. 또한 , 모니터가 꺼져 있는 동안 드라이버는 DxgkDdiPresent 작업을 계속 완료해야 합니다. 그러나 관련 모니터의 전원이 꺼져 있는지 확인하여 DxgkDdiCommitVidPn 을 호출할 때 드라이버는 워크로드를 줄일 수 있습니다. 전원이 복원되면 디스플레이 구성을 복원하는 드라이버 워크로드가 줄어듭니다.

예를 들어 시스템 다시 시작 시 모니터가 물리적으로 연결되지 않을 수 있으므로 드라이버는 디스플레이 어댑터의 자식 디바이스의 전원 상태를 설정하기 위해 나중에 DxgkDdiSetPowerState 함수를 호출하기 위해 Windows를 사용하지 않아야 합니다. 그러나 Windows는 여전히 CRTC를 켜도록 요청합니다. 드라이버가 DMM(디스플레이 모드 관리자)에 의해 요청될 때 세로 동기화를 켜지 않고 사용자가 나중에 모니터를 다시 연결하는 경우 모니터 디스플레이가 비어 있을 수 있습니다.

모니터가 꺼져 있는 동안 드라이버에서 DxgkDdiPresent 작업을 계속 적용해야 합니다. 예를 들어 회전 변경을 고려하여 렌더링 파이프라인을 수정하려면 드라이버가 애플리케이션에 의해 트리거되는 모드 변경에 따라 동작해야 할 수 있습니다. PathPowerTransition = FALSEPathPoweredOff = TRUE의 설정은 드라이버에 이러한 모드 변경이 발생했음을 알릴 수 있습니다. 이 경우 드라이버는 모니터를 켜지 않아야 하지만 필요한 경우 추가 DxgkDdiPresent 작업을 완료할 수 있도록 모드 변경을 수용하기 위해 하드웨어를 다시 프로그래밍해야 합니다. 이러한 모드 변경이 수행되고 모니터가 나중에 다시 켜지면 전원이 꺼지기 전에 발생한 모드가 복원될 가능성은 낮습니다.

시스템 일시 중단 작업에 대해 모니터가 꺼진 후 시스템 다시 시작 작업이 트리거되면 드라이버는 PathPowerTransitionTRUE를 사용하여 DxgkDdiCommitVidPn 호출을 수행하기 전에 PathPowerTransition = FALSEPathPoweredOff = FALSE모두 사용하여 = DxgkDdiCommitVidPn 호출을 받을 수 있습니다. 이 상황은 빈 토폴로지에서만 발생해야 하며, 이 경우 전원 전환이 아직 완료되지 않았기 때문에 드라이버가 모니터를 다시 켜서는 안 됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
머리글 d3dkmddi.h(D3dkmddi.h 포함)

추가 정보

DXGKARG_COMMITVIDPN

DxgkDdiPresent

DxgkDdiSetPowerState