다음을 통해 공유


DXGKDDI_DSIRESET 콜백 함수(dispmprt.h)

구문

DXGKDDI_DSIRESET DxgkddiDsireset;

NTSTATUS DxgkddiDsireset(
  [in]  HANDLE Context,
  [in]  D3DDDI_VIDEO_PRESENT_TARGET_ID TargetId,
  [out] PDXGK_DSI_RESET pArgs
)
{...}

매개 변수

[in] Context

[in] TargetId

모니터의 대상 식별자입니다.

[out] pArgs

DXGI_DSI_CAPS 구조체에 대한 포인터입니다.

반환 값

DxgkddiDsiReset 은 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 Ntstatus.h에 정의된 오류 코드 중 하나를 반환합니다.

설명

OEM 패널 드라이버가 패널이 잘못된 상태임을 감지하면 그래픽 드라이버 및 OS 제어에서 디바이스의 재설정을 요청하는 IOCTL_MIPI_DSI_RESET 보냅니다. 다시 설정은 반드시 여러 프레임에 대한 디스플레이 블랭킹을 유발하는 무거운 작업이므로 최후의 수단으로만 사용해야 합니다.

초기화를 처리하는 동안에는 일반 패널 작업을 계속할 수 없으므로 OS는 디스플레이 모드 변경과 매우 유사하게 처리하고, 보류 중인 GPU 작업을 플러시하고, 대칭 이동이 완료될 때까지 새 작업을 차단합니다. OS는 IOCTL을 DxgkDsiReset DDI 호출로 변환합니다. 드라이버는 패널에서 전원을 완전히 제거하고 처음부터 다시 초기화해야 하며, 적절한 지연 후에는 반환하기 전에 패널을 실행 가능한 상태로 복원하기 위해 필요한 모든 작업을 수행해야 합니다. 설정되면 플래그는 SecondaryPort 초기화가 주 패널이 아닌 보조 패널을 대상으로 해야 했음을 나타냅니다.

패널 다시 설정을 수행하거나 복원하기 위해 그래픽 드라이버에 전체 모드 집합이 필요한 경우 출력 플래그 NeedModeSet를 설정해야 합니다. 호출에서 반환할 때 설정된 경우 OS는 정상적인 작업의 차단을 해제하기 전에 DxgkDdiSetTimingsFromVidPn 호출로 응답합니다. 드라이버가 필요한 경우 설정된 타이밍 호출 후 실행 가능한 상태가 예상되는 경우 이 호출에 대한 초기화 작업의 일부를 연기하도록 선택할 수 있습니다.

그래픽 드라이버는 검색된 하위 수준 MIPI 오류를 보고해야 하며 출력 필드를 통해 드라이버가 MipiErrors 처리하지 않아야 합니다.

초기화 중에 복구할 수 없는 오류가 발생하면 그래픽 드라이버가 출력 플래그를 ResetFailed 설정해야 합니다. 이것은 치명적인 실패가 될 것으로 예상됩니다. 또한 그래픽 드라이버는 DxgkCbIndicateConnectorChange 콜백을 사용하여 플러그를 뽑은 다음 실패한 대상에 대해 TargetStatusDisconnected를 보고하여 DxgkDdiQueryConnectionChange 에 응답하여 대상에서 디스플레이를 사용할 수 없음을 신호해야 합니다.

출력 필드는 IOCTL의 출력 버퍼로 다시 전파됩니다.

요구 사항

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

추가 정보

DxgkCbIndicateConnectorChange

DxgkDdiQueryConnectionChange

DxgkDdiSetTimingsFromVidPn

IOCTL_MIPI_DSI_RESET