DXGKDDI_STOP_DEVICE_AND_RELEASE_POST_DISPLAY_OWNERSHIP Rückruffunktion (dispmprt.h)
Wird vom Betriebssystem aufgerufen, um den Display-Miniporttreiber zum Zurücksetzen des Anzeigegeräts anzufordern und den Besitz des aktuellen Post-Geräts (Power-On Self-Test) freizugeben.
Ab Windows 8 ruft das Betriebssystem diese Funktion während eines PnP-Vorgangs (Plug & Play) auf.
Um dem Betriebssystem mitzuteilen, dass diese Funktion unterstützt wird, muss der Treiber den NonVGASupport-Member der DXGK_DRIVERCAPS-Struktur festlegen, wenn die DxgkDdiQueryAdapterInfo-Funktion aufgerufen wird.
Syntax
DXGKDDI_STOP_DEVICE_AND_RELEASE_POST_DISPLAY_OWNERSHIP DxgkddiStopDeviceAndReleasePostDisplayOwnership;
NTSTATUS DxgkddiStopDeviceAndReleasePostDisplayOwnership(
[in] PVOID MiniportDeviceContext,
[in] D3DDDI_VIDEO_PRESENT_TARGET_ID TargetId,
[out] PDXGK_DISPLAY_INFORMATION DisplayInfo
)
{...}
Parameter
[in] MiniportDeviceContext
Ein Handle für einen Kontextblock, der einem Anzeigeadapter zugeordnet ist. Die DxgkDdiAddDevice-Funktion des Anzeigeminiporttreibers hat dieses Handle zuvor für das Microsoft DirectX-Grafikkernsubsystem bereitgestellt.
[in] TargetId
Ein D3DDDI_VIDEO_PRESENT_TARGET_ID Wert, der den Bezeichner des vorhandenen Videoziels auf der Grafikkarte angibt, mit der das Anzeigegerät verbunden ist. Dieser Bezeichner kann für das Ziel gelten, das während des vorherigen Aufrufs von DxgkDdiCommitVidPn im aktuellen Video present Network-Zustand (VidPN) verbleibt.
Weitere Informationen zur Verwendung des TargetId-Parameters finden Sie im folgenden Abschnitt Hinweise.
[out] DisplayInfo
Ein Zeiger auf eine DXGK_DISPLAY_INFORMATION Struktur, die vom Betriebssystem zugewiesen wird.
Rückgabewert
Gibt STATUS_SUCCESS zurück, wenn dies erfolgreich ist. Andernfalls wird einer der in "Ntstatus.h" definierten Fehlercodes zurückgegeben. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
Hinweise
Zulässige Farbformate
Der Anzeigeminiporttreiber sollte nur ein 32-Bit-Farbformat melden. Daher darf das DisplayInfo->ColorFormat-Element nur eines der folgenden beiden Formate enthalten:- D3DDDIFMT_X8R8G8B8
- D3DDDIFMT_A8R8G8B8
Video zur Zielinitialisierung
Der Anzeigeminiporttreiber muss das DisplayInfo->TargetId-Element auf den Zielbezeichner der weiterhin aktiven Anzeige festlegen. In der Regel ist dieser Bezeichner der Wert des TargetId-Parameters , den das Betriebssystem an den Treiber übergeben hat.In ähnlicher Weise muss der Anzeigeminiporttreiber das DisplayInfo-AcpiId-Element> auf den ACPI-Bezeichner der Anzeige festlegen, die aktiv bleibt.
Erforderliche Schritte nach Anzeige des Miniporttreibers
Der Anzeigeminiporttreiber muss die folgenden Schritte ausführen, wenn seine DxgkDdiStopDeviceAndReleasePostDisplayOwnership-Funktion aufgerufen wird:- Der Treiber muss das Anzeigegerät beenden, das dem durch den TargetId-Parameter angegebenen Videoziel zugeordnet ist, aber die Anzeige, die diesem Ziel zugeordnet ist, eingeschaltet und sichtbar halten.
- Der Treiber muss die Konnektivität der anzeige überprüfen, die diesem Ziel zugeordnet ist. Wenn das Ziel keine Anzeige angeschlossen hat, muss der Treiber den Aufruf dieser Funktion abschließen und den STATUS_NOT_SUPPORTED Fehlercode zurückgeben.
- Der Treiber muss das Signal für alle anderen Displays deaktivieren, die mit dem Grafikkarte verbunden sind. Wenn dies nicht möglich ist, sollte der Treiber versuchen, ein leeres Bild auf allen anderen Displays zu platzieren. Wenn dies nicht möglich ist, muss der Treiber das letzte Bild auf dem Bildschirm unverändert lassen.
- Der Treiber muss den aktuellen Anzeigemodus auf dem angegebenen Ziel beibehalten und diesen Modus im Rahmen dieses Funktionsaufrufs dem Betriebssystem zurückgeben.
- Wenn der Treiber den aktuellen Anzeigemodus nicht beibehalten kann oder das Ziel nicht Teil der aktiven Topologie ist, sollte der Treiber ein alternatives aktives Ziel auswählen und versuchen, die aktuelle Auflösung dieses Ziels beizubehalten. Wenn dies nicht möglich ist, sollte der Treiber versuchen, die Anzeige auf die native Auflösung oder auf einen hochauflösenden Modus festzulegen. In diesem Fall muss die Anzeigeauflösung auf mindestens 800 x 600 Pixel in D3DDDIFMT_R8G8B8 (24 Bits pro Pixel) oder D3DDDIFMT_X8R8G8B8 (32 bpp) Farbformate der D3DDDIFORMAT-Enumeration festgelegt werden.
- Wenn kein Ziel aktiv ist, sollte der Treiber versuchen, ein Ziel zu aktivieren, vorzugsweise den internen Bereich, wenn es verfügbar ist.
- Wenn möglich, muss der Treiber den aktuellen Framepuffer löschen und den Hardwarecursor und alle Anzeigeüberlagerungen deaktivieren.
- Wenn möglich, muss der Treiber die Gammarampe des Geräts auf seine Standardwerte festlegen.
- Der Treiber muss den aktuellen Framepuffer so festlegen, dass er sich in einem linearen Modus befindet. Dazu verwendet der Treiber entweder den Standard-Swizzle-Bereich oder deaktiviert den Swizzle-Modus.
- Der Treiber muss den aktuellen Framepuffer für die CPU zugänglich machen, indem er den aktuellen Framepuffer linear dem CPU-Adressraum zugeordnet.
- Der Treiber muss sicherstellen, dass die Sichtbarkeit des angegebenen Ziels auf "aktiviert" festgelegt ist.
Andere Vorraussetzungen
Auf Systemen, die die Unified Extensible Firmware Interface (UEFI) unterstützen, ist kein VGA Basic Input/Output System (BIOS) vorhanden. Um PnP-Stoppvorgänge auf diesen Systemen zu unterstützen, bietet Windows Display Driver Model (WDDM) 1.2 und höher Unterstützung für das Betriebssystem, um das POST-Gerät zurückzusetzen und seine Anzeigeinformationen während eines PnP-Stoppvorgangs abzurufen. Dazu ruft das Betriebssystem die DxgkDdiStopDeviceAndReleasePostDisplayOwnership-Funktion des Anzeigeminiporttreibers auf.Ein PnP-Stoppvorgang kann als Reaktion auf Anforderungen von Prozessen wie dem Geräte-Manager oder während eines Treiberupgradeprozesses auftreten.
Ab Windows 8 ruft das Betriebssystem die DxgkDdiStopDeviceAndReleasePostDisplayOwnership-Funktion des Treibers nur auf dem POST-Gerät während eines PnP-Stoppvorgangs auf.
Wenn der Display-Miniporttreiber auf nur UEFI-Systemen einen Aufruf dieser Funktion auslässt, wird ein schwarzer Bildschirm angezeigt, und der IHV-Treiber ist nicht installiert. Die Problemumgehung für dieses Szenario besteht darin, dass der Benutzer den Computer neu startet.
Weitere Informationen zur Verwendung dieser Funktion in PnP-Szenarien finden Sie unter Plug & Play (PnP) in WDDM 1.2 und höher.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 |
Unterstützte Mindestversion (Server) | Windows Server 2012 |
Zielplattform | Desktop |
Kopfzeile | dispmprt.h |
IRQL | PASSIVE_LEVEL |