DXGKDDI_DSIRESET Rückruffunktion (dispmprt.h)

Syntax

DXGKDDI_DSIRESET DxgkddiDsireset;

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

Parameter

[in] Context

[in] TargetId

Zielbezeichner des Monitors.

[out] pArgs

Zeiger auf eine DXGI_DSI_CAPS-Struktur .

Rückgabewert

DxgkddiDsiReset gibt bei Erfolg STATUS_SUCCESS zurück. Andernfalls wird einer der in Ntstatus.h definierten Fehlercodes zurückgegeben.

Hinweise

Wenn der OEM-Paneltreiber erkennt, dass sich der Bereich in einem fehlerhaften Zustand befindet, sendet er eine IOCTL_MIPI_DSI_RESET , um eine Zurücksetzung des Geräts unter grafiktreiber und Betriebssystemsteuerung anzufordern. Ein Zurücksetzen ist notwendigerweise ein schwerer Vorgang, der zu einer Leerung der Anzeige für mehrere Frames führt und daher nur als letzter Ausweg verwendet werden sollte.

Der normale Panel-Betrieb kann während der Verarbeitung einer Zurücksetzung nicht fortgesetzt werden, sodass das Betriebssystem ihn sehr ähnlich behandelt wie eine Änderung des Anzeigemodus, löscht ausstehende GPU-Aktivitäten, einschließlich aller Flips, und blockiert neue Arbeit bis zum Abschluss. Das Betriebssystem übersetzt die IOCTL in einen DxgkDsiReset DDI-Aufruf. Der Treiber sollte den Strom aus dem Panel vollständig entfernen und es von Grund auf neu initialisieren und nach der entsprechenden Verzögerung alle Erforderlichen Aktionen ausführen, um den Bereich in einen funktionsfähigen Zustand wiederherzustellen, bevor er zurückkehrt. Wenn es festgelegt ist, gibt das SecondaryPort Flag an, dass die Zurücksetzung auf ein sekundäres Panel und nicht auf das primäre Panel ausgerichtet werden soll.

Wenn der Grafiktreiber einen Vollmodus erfordert, um eine Bereichszurücksetzung durchzuführen oder wiederherzustellen, sollte das Ausgabeflag festgelegt werden NeedModeSet. Wenn diese Einstellung beim Zurückgeben des Aufrufs festgelegt wird, antwortet das Betriebssystem mit einem DxgkDdiSetTimingsFromVidPn-Aufruf , bevor die Blockierung der normalen Aktivität aufgehoben wird. Der Treiber kann bei Bedarf einen Teil der Zurücksetzungsarbeiten auf diesen Aufruf zurückstellen, vorausgesetzt, dass nach dem Aufruf der festgelegten Zeitsteuerungen ein funktionsfähiger Zustand erwartet wird.

Der Grafiktreiber sollte alle MIPI-Fehler auf niedriger Ebene melden, die erkannt und nicht vom Treiber über das MipiErrors Ausgabefeld behandelt werden.

Wenn während des Zurücksetzens ein nicht behebbarer Fehler auftritt, sollte der Grafiktreiber das ResetFailed Ausgabeflag festlegen. Es wird erwartet, dass dies ein katastrophaler Fehler sein wird. Der Grafiktreiber sollte auch signalisieren, dass auf dem Ziel keine Anzeige verfügbar ist, indem er angibt, dass ein Trennvorgang erfolgt ist, indem er den DxgkCbIndicateConnectorChange-Rückruf verwendet und dann auf DxgkDdiQueryConnectionChange reagiert, indem er einen TargetStatusDisconnected für das Ziel meldet, bei dem ein Fehler aufgetreten ist.

Die Ausgabefelder werden zurück an den Ausgabepuffer der IOCTL weitergegeben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 2004
Kopfzeile dispmprt.h

Weitere Informationen

DxgkCbIndicateConnectorChange

DxgkDdiQueryConnectionChange

DxgkDdiSetTimingsFromVidPn

IOCTL_MIPI_DSI_RESET