функция обратного вызова 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 |