функция обратного вызова 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 обнаруживает, что панель находится в плохом состоянии, она отправляет IOCTL_MIPI_DSI_RESET, чтобы запросить сброс устройства под графическим драйвером и элементом управления ОС. Сброс обязательно является операцией с большим весом, которая приведет к отображению пустых для нескольких кадров и поэтому следует использовать только в качестве последнего средства.
Обычная операция панели не может быть продолжена при обработке сброса, поэтому ОС будет обрабатывать ее очень аналогично изменению режима отображения, очистке ожидающих действий GPU, включая любые переверки и блокировку новой работы до завершения. ОС преобразует IOCTL в вызов DxgkDsiReset DDI. Драйвер должен полностью удалить питание с панели и повторно инициализировать его с нуля, а после соответствующей задержки выполнить все действия, необходимые для восстановления панели в работоспособном состоянии перед возвратом. При установке флаг SecondaryPort
указывает, что сброс должен быть направлен на вторичную панель, а не на основную.
Если графическому драйверу требуется полный режим для выполнения или восстановления из сброса панели, он должен задать флаг вывода NeedModeSet
. Если задано при возвращении из вызова, ос будет реагировать на вызов DxgkDdiSetTimingsFromVidPn вызов перед разблокировкой нормального действия. Драйвер может отложить некоторые действия сброса для этого вызова при необходимости, если это необходимо, если требуется рабочее состояние после вызова заданного времени.
Графический драйвер должен сообщать об обнаруженных ошибках MIPI низкого уровня и не обрабатываться драйвером через поле вывода MipiErrors
.
Если во время сброса возникает неустранимая ошибка, графический драйвер должен задать флаг вывода ResetFailed
. Ожидается, что это катастрофический сбой. Графический драйвер также должен сигнализировать о том, что на целевом объекте не отображается, указывая, что произошла отмена подключения с помощью DxgkCbIndicateConnectorChange обратного вызова, а затем отвечая на запросы DxgkDdiQueryConnectionChange, сообщая TargetStatusDisconnected для целевого объекта, который завершился сбоем.
Выходные поля будут распространяться обратно в выходной буфер IOCTL.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 10 версии 2004 |
заголовка | dispmprt.h |