DXGKDDI_START_DEVICE Rückruffunktion (dispmprt.h)
Die DxgkDdiStartDevice-Funktion bereitet einen Grafikkarte für den Empfang von E/A-Anforderungen vor.
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
)
{...}
[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.
DxgkDdiStartDevice gibt bei Erfolg STATUS_SUCCESS zurück. Andernfalls wird einer der in "Ntstatus.h" definierten Fehlercodes zurückgegeben.
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.
Die DxgkDdiStartDevice-Funktion sollte als ausgelagert werden.
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows Vista. |
Zielplattform | Desktop |
Kopfzeile | dispmprt.h |
IRQL | PASSIVE_LEVEL |