DXGKDDI_START_DEVICE Rückruffunktion (dispmprt.h)

Die DxgkDdiStartDevice-Funktion bereitet einen Grafikkarte für den Empfang von E/A-Anforderungen vor.

Syntax

DXGKDDI_START_DEVICE DxgkddiStartDevice;

NTSTATUS DxgkddiStartDevice(
  [in]  IN_CONST_PVOID MiniportDeviceContext,
  [in]  IN_PDXGK_START_INFO DxgkStartInfo,
  [in]  IN_PDXGKRNL_INTERFACE DxgkInterface,
  [out] OUT_PULONG NumberOfVideoPresentSources,
  [out] OUT_PULONG NumberOfChildren
)
{...}

Parameter

[in] MiniportDeviceContext

Ein Handle für einen Kontextblock, der einer Grafikkarte zugeordnet ist. Die DxgkDdiAddDevice-Funktion des Display-Miniporttreibers hat dieses Handle zuvor für das DirectX-Grafikkernsubsystem bereitgestellt.

[in] DxgkStartInfo

Ein Zeiger auf eine DXGK_START_INFO Struktur, die Informationen enthält, die der Anzeigeminiporttreiber für die Initialisierung benötigt.

[in] DxgkInterface

Ein Zeiger auf eine DXGKRNL_INTERFACE-Struktur , die Zeiger auf Funktionen enthält, die vom DirectX-Grafikkernsubsystem implementiert werden und die vom Anzeigeminiporttreiber aufgerufen werden können.

[out] NumberOfVideoPresentSources

Ein Zeiger auf eine ULONG-Variable , die die Anzahl der von der Grafikkarte unterstützten Videoquellen empfängt. Weitere Informationen zu vorhandenen Videoquellen finden Sie unter Mehrere Monitore und Video Present Networks.

[out] NumberOfChildren

Ein Zeiger auf eine ULONG-Variable , die die Gesamtanzahl der Geräte empfängt, die untergeordnete Elemente des durch MiniportDeviceContext dargestellten Anzeigeadapters sind. Diese Anzahl muss potenzielle untergeordnete Geräte sowie untergeordnete Geräte umfassen, die derzeit vorhanden sind. Wenn beispielsweise das Andocken eines tragbaren Computers zusätzliche Videoausgaben zur Verfügung stellt, müssen diese Videoausgaben gezählt werden, unabhängig davon, ob der tragbare Computer gerade angedockt ist. Weitere Informationen zu untergeordneten Geräten finden Sie unter Untergeordnete Geräte des Display Adapters.

Rückgabewert

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

Hinweise

Die DxgkDdiStartDevice-Funktion muss die folgenden Aktionen ausführen:

  • Speichern Sie die Funktionszeiger, die von der an den DxgkInterface-Parameter übergebenen DXGKRNL_INTERFACE-Struktur bereitgestellt werden. Speichern Sie außerdem den DeviceHandle-Member der DXGKRNL_INTERFACE-Struktur . Sie benötigen dieses Handle, um das DirectX-Grafikkernsubsystem wieder aufzurufen.
  • Ordnen Sie eine DXGK_DEVICE_INFO-Struktur zu, und rufen Sie DxgkCbGetDeviceInformation auf, um die Member dieser Struktur auszufüllen, die den Registrierungspfad, die PDO und eine Liste übersetzter Ressourcen für den von MiniportDeviceContext dargestellten Anzeigeadapter enthalten. Speichern Sie ausgewählte Member (die der Anzeige-Miniporttreiber später benötigt) der DXGK_DEVICE_INFO-Struktur im Kontextblock, der durch MiniportDeviceContext dargestellt wird.
  • Ordnen Sie Speicherressourcen dem Systembereich zu, indem Sie die DxgkCbMapMemory-Funktion aufrufen.
  • Initialisieren Sie den durch MiniportDeviceContext dargestellten Kontextblock mit einem beliebigen Zustand, der erforderlich ist, um die Hardware für den Empfang von E/A-Anforderungen vorzubereiten.
  • Legen Sie NumberOfVideoPresentSources auf die Anzahl der vorhandenen Videoquellen fest, die von der Anzeigekarte unterstützt werden, die durch MiniportDeviceContext dargestellt wird.
  • Legen Sie NumberOfChildren auf die Anzahl der Geräte fest, die untergeordnete Elemente des durch MiniportDeviceContext dargestellten Displayadapters sind (oder werden könnten).
  • Aktivieren Sie Interrupts für den durch MiniportDeviceContext dargestellten Grafikkarte.
Ab Windows Display Driver Model (WDDM) 1.2 ruft der Anzeigeminiporttreiber die DxgkCbAcquirePostDisplayOwnership-Funktion auf, um die Informationen über den Anzeigemodus abzurufen, der zuvor von der Firmware und dem Systemladeprogramm festgelegt wurde. Wenn DxgkCbAcquirePostDisplayOwnership mit STATUS_SUCCESS zurückgibt, bestimmt der Treiber basierend auf den Anzeigemodusinformationen, die über den DisplayInfo-Parameter zurückgegeben wurden, ob die Anzeige neu initialisiert werden muss. Andernfalls sollte der Treiber nicht davon ausgehen, dass derzeit ein bestimmter Anzeigemodus auf dem Gerät aktiviert ist, und er sollte die Anzeige initialisieren.

Die DxgkDdiStartDevice-Funktion sollte als ausgelagert werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows Vista.
Zielplattform Desktop
Kopfzeile dispmprt.h
IRQL PASSIVE_LEVEL

Weitere Informationen

DXGKRNL_INTERFACE

DXGK_DEVICE_INFO

DxgkCbAcquirePostDisplayOwnership

DxgkCbGetDeviceInformation

DxgkCbMapMemory

DxgkDdiAddDevice

DxgkDdiStopDevice