DXGKDDI_ADD_DEVICE Rückruffunktion (dispmprt.h)
Die DxgkDdiAddDevice-Funktion erstellt einen Kontextblock für eine Grafikkarte und gibt ein Handle zurück, das die Grafikkarte darstellt.
Syntax
DXGKDDI_ADD_DEVICE DxgkddiAddDevice;
NTSTATUS DxgkddiAddDevice(
[in] IN_CONST_PDEVICE_OBJECT PhysicalDeviceObject,
[out] OUT_PPVOID MiniportDeviceContext
)
{...}
Parameter
[in] PhysicalDeviceObject
Ein Zeiger auf ein objekt physisches Gerät (PDO), das einen Grafikkarte identifiziert.
[out] MiniportDeviceContext
Ein Zeiger auf eine Variable, die ein handle empfängt, das vom Display-Miniporttreiber erstellt wurde und den von PhysicalDeviceObject identifizierten Grafikkarte darstellt. Der Anzeige-Miniporttreiber kann null in diesem Parameter zurückgeben, um anzugeben, dass er den durch PhysicalDeviceObject identifizierten Anzeigeadapter nicht unterstützt.
Rückgabewert
DxgkDdiAddDevice gibt bei Erfolg STATUS_SUCCESS zurück. Andernfalls wird einer der in "Ntstatus.h" definierten Fehlercodes zurückgegeben.
Hinweise
Die DxgkDdiAddDevice-Funktion ordnet einen privaten Kontextblock zu, der dem von PhysicalDeviceObject identifizierten Grafikkarte zugeordnet ist. Sie können sich das in MiniportDeviceContext zurückgegebene Handle als Handle für die Grafikkarte oder als Handle für den Kontextblock vorstellen, der der Grafikkarte zugeordnet ist. Das DirectX-Grafikkernsubsystem (Dxgkrnl.sys) stellt das Handle bei nachfolgenden Aufrufen des Display-Miniporttreibers bereit. Die folgende Liste enthält Beispiele für verschiedene Komponenten von Dxgkrnl.sys übergeben das Handle an Funktionen, die vom Display-Miniport-Treiber implementiert werden.
Der Anzeigeporttreiber stellt das Handle im MiniportDeviceContext-Parameter der DxgkDdiStartDevice-Funktion bereit.
Der VidPN-Manager stellt das Handle im hAdapter-Parameter der DxgkDdiIsSupportedVidPn-Funktion bereit.
Der DirectX-Grafikkern stellt das Handle im hAdapter-Parameter der DxgkDdiQueryAdapterInfo-Funktion bereit.
Lassen Sie sich nicht durch die Tatsache verwirren, dass das Handle manchmal den Namen MiniportDeviceContext und manchmal den Namen hAdapter trägt. Verwechseln Sie dieses Handle auch nicht mit dem hDevice-Parameter , der an bestimmte Anzeige-Miniporttreiberfunktionen übergeben wird.
DxgkDdiAddDevice wird für jeweils ein Gerät in seriell aufgerufen. Sein Verhalten entspricht dem Standard-DRIVER_ADD_DEVICE Rückruf für WDM-Kernelmodustreiber.
Einige Grafikkarten verfügen über zwei oder mehr PCI-Funktionen, die die Rolle des Grafikkarten spielen. Beispielsweise implementieren bestimmte ältere Karten mehrere Ansichten, indem sie über eine separate PCI-Funktion für jede Ansicht verfügen. Der Anzeigeporttreiber ruft DxgkDdiAddDevice einmal für jede dieser PCI-Funktionen auf. Zu diesem Zeitpunkt kann der Anzeige-Miniporttreiber angeben, dass er die PCI-Funktion unterstützt (indem miniportDeviceContext auf einen Wert ungleich null festgelegt wird) oder dass er die PCI-Funktion nicht unterstützt (durch Festlegen von MiniportDeviceContext auf NULL). Um Informationen zu einer bestimmten PCI-Funktion zu erhalten, kann der Anzeige-Miniporttreiber PhysicalDeviceObject an IoGetDeviceProperty übergeben.
Geben Sie in DxgkDdiRemoveDevice Ihren Kontextblock und alle anderen Ressourcen frei, die Sie während DxgkDdiAddDevice zuweisen.
Die DxgkDdiAddDevice-Funktion sollte ausgelagert werden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Zielplattform | Desktop |
Kopfzeile | dispmprt.h |
IRQL | PASSIVE_LEVEL |