통사론
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 |