다음을 통해 공유


DXGKDDI_CONTROLINTERRUPT3 콜백 함수(d3dkmddi.h)

DxgkDdi_ControlInterrupt3 함수는 그래픽 하드웨어에서 지정된 VidPnSourceId에 대해 지정된 인터럽트 유형을 사용하거나 사용하지 않도록 설정합니다.

구문

DXGKDDI_CONTROLINTERRUPT3 DxgkddiControlinterrupt3;

NTSTATUS DxgkddiControlinterrupt3(
  [in] IN_CONST_HANDLE hAdapter,
  [in] IN_CONST_PDXGKARG_CONTROLINTERRUPT3 InterruptControl
)
{...}

매개 변수

[in] hAdapter

GPU(그래픽 처리 장치)의 어댑터 개체에 대한 핸들입니다. 드라이버는 DxgkDdiAddDevice 함수 호출에서 MiniportDeviceContext 매개 변수에 이 핸들을 반환했습니다.

[in] InterruptControl

인터럽트 형식, VSYNC 상태 및 VidPnSourceId를 제공하는 DXGKARG_CONTROLINTERRUPT3 구조체입니다.

반환 값

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

반환 코드 설명
STATUS_SUCCESS 그래픽 하드웨어에서 인터럽트 유형을 사용하도록 설정하거나 사용하지 않도록 설정했습니다.
STATUS_NOT_IMPLEMENTED DxgkDdi_ControlInterrupt3 지정된 인터럽트 유형을 사용하거나 사용하지 않도록 설정할 수 없습니다.

설명

VSync 컨트롤은 WDDM에서 VSync ON 및 OFF를 토글하여 시나리오에 의한 VidPn 원본의 활성 사용과 VSync 끄기를 통해 달성된 절전 간의 균형을 맞추는 데 사용됩니다. 일반적으로 운영 체제는 VSync가 ON 및 OFF로 유지되어야 하는 경우의 논리를 제어하고 DDI 호출을 통해 IHV KMD(커널 모드 드라이버)에 알립니다. KMD는 요청을 실행합니다. 버전 2004(WDDM 2.7)를 Windows 10 전에 VSync 컨트롤의 세분성은 어댑터당입니다. 즉, 지정된 어댑터의 경우 VSync 컨트롤이 어댑터의 모든 VidPn 원본에 적용됩니다. 예를 들어 두 개의 VidPn 원본이 서로 다른 두 출력에 연결된 어댑터를 생각해 보세요. 하나의 출력에 활동이 없고 VSync/VBlank에 대한 소비자가 없는 경우 OS는 비활성 출력에 대해 VSync ON을 유지해야 하는 한 가지 옵션만 있습니다.

이중 화면 휴대용 디바이스의 경우 필요하지 않은 경우 한 화면에 대해 VSync ON을 유지하면 상당한 전원 비용이 발생합니다. 디스플레이 컨트롤러/디스플레이 링크가 활성 상태로 유지되어야 하며 자체 새로 고침을 지원하는 패널이 낮은 빈도의 저전력 자체 새로 고침 모드로 전환되지 않도록 방지합니다. Windows 10 버전 2004 이상 버전에서 DxgkDdiControlInterrupt3을 사용하면 어댑터의 VidPn 원본당 VSync 컨트롤을 보다 세부적으로 제어할 수 있습니다.

DxgkDdiControlInterrupt3 또는 DxgkDdi_ControlInterrupt2 중 하나만 어댑터의 수명 동안 OS에서 사용됩니다.

DxgkDdi_ControlInterrupt3 구현하지 않는 WDDM 2.7 드라이버는 독립적인 VidPn VSync 제어를 옵트아웃하고 OS는 DxgkDdi_ControlInterrupt2 호출합니다. DXGK_DRIVERCAPS-IndependentVidPnVSync> 기능은 DxgkDdi_ControlInterrupt3 지원하지 않는 드라이버에서 0이어야 합니다. 그렇지 않으면 OS가 어댑터 초기화에 실패합니다. 드라이버가 DxgkDdi_ControlInterrupt3 구현하는 경우 기능을 0 또는 1로 설정하여 Per-VidPn 지원을 나타낼 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10, 버전 2004
머리글 d3dkmddi.h

추가 정보

DXGKARG_CONTROLINTERRUPT2

DXGK_DRIVERCAPS

DXGKARG_CONTROLINTERRUPT3

DxgkDdi_ControlInterrupt2