Initialisieren der Kommunikation mit direct3D Version 10 DDI
Um die Kommunikation mit der Version 10 DDI des Benutzermodusanzeigetreibers zu initialisieren, lädt die Direct3D-Runtime 10 zuerst die DLL, wenn die DLL noch nicht geladen ist. Die Direct3D-Runtime ruft als Nächstes die OpenAdapter10-Funktion des Benutzermodustreibers über die Exporttabelle der DLL auf, um eine instance des Grafikkartes zu öffnen. Die OpenAdapter10-Funktion ist die einzige exportierte Direct3D-Version 10-Funktion der DLL.
Beim Aufruf der OpenAdapter10-Funktion des Treibers stellt die Runtime die PfnQueryAdapterInfoCb-Adapterrückruffunktion im pAdapterCallbacks-Member der D3D10DDIARG_OPENADAPTER-Struktur bereit. Die Runtime stellt auch ihre Version in den Membern Interface und Version von D3D10DDIARG_OPENADAPTER bereit. Der Benutzermodusanzeigetreiber muss überprüfen, ob er diese Version der Runtime verwenden kann. Der Benutzermodusanzeigetreiber darf keine Fehler bei neueren Versionen der Laufzeit ausführen, da neuere Laufzeitversionen frühere DDI-Versionen verwenden können und daher ordnungsgemäß mit Treibern kommunizieren können, die diese vorherigen DDI-Versionen implementieren. Der Benutzermodusanzeigetreiber gibt eine Tabelle seiner adapterspezifischen Funktionen im pAdapterFuncs-Member von D3D10DDIARG_OPENADAPTER zurück.
Der Benutzermodusanzeigetreiber sollte die Rückruffunktion des pfnQueryAdapterInfoCb-Adapters aufrufen, um die Grafikhardwarefunktionen des Anzeigeminiporttreibers abzufragen.
Die Runtime ruft die CreateDevice(D3D10) -Funktion des Benutzermodusanzeigetreibers (eine der adapterspezifischen Funktionen des Treibers) auf, um ein Anzeigegerät für die Verarbeitung einer Auflistung des Renderzustands zu erstellen und die Initialisierung abzuschließen. Wenn die Initialisierung abgeschlossen ist, kann die Direct3D-Runtime, Version 10, die vom Anzeigetreiber bereitgestellten Direct3D-Funktionen der Version 10 aufrufen, und der Benutzermodusanzeigetreiber kann die von der Laufzeit bereitgestellten Funktionen aufrufen.
Die CreateDevice(D3D10) -Funktion des Benutzermodusanzeigetreibers wird mit einer D3D10DDIARG_CREATEDEVICE-Struktur aufgerufen, deren Member wie folgt eingerichtet sind, um die Version 10 DDI des Benutzermodusanzeigetreibers zu initialisieren:
Die Runtime legt Interface auf die Version der Schnittstelle fest, die die Runtime vom Benutzermodusanzeigetreiber benötigt.
Die Runtime legt Version auf eine Zahl fest, die der Treiber verwenden kann, um zu identifizieren, wann die Runtime erstellt wurde. Beispielsweise kann der Treiber die Versionsnummer verwenden, um zwischen einer Laufzeit, die mit Windows Vista veröffentlicht wurde, und einer Laufzeit zu unterscheiden, die mit einem nachfolgenden Service Pack veröffentlicht wurde, das möglicherweise einen Vom Treiber benötigten Fix enthalten kann.
Die Runtime legt hRTDevice fest, um das Handle anzugeben, das der Treiber verwenden soll, wenn der Treiber in die Runtime zurückruft.
Die Runtime legt hDrvDevice fest, um das Handle anzugeben, das die Runtime in nachfolgenden Treiberaufrufen verwendet.
Die Runtime stellt eine Tabelle ihrer gerätespezifischen Rückruffunktionen in der D3DDDI_DEVICECALLBACKS-Struktur bereit, auf die pKTCallbacks verweist. Der Benutzermodusanzeigetreiber ruft die von der Laufzeit bereitgestellten Rückruffunktionen auf, um auf Kernelmodusdienste im Anzeigeminiporttreiber zuzugreifen.
Der Benutzermodusanzeigetreiber gibt eine Tabelle seiner gerätespezifischen Funktionen in der D3D10DDI_DEVICEFUNCS Struktur zurück, auf die pDeviceFuncs verweist.
Die Runtime stellt eine DXGI_DDI_BASE_ARGS-Struktur bereit, auf die DXGIBaseDDI verweist. Der Runtime- und der Benutzermodusanzeigetreiber stellen ihre DirectX-Grafikinfrastruktur-DDI für diese Struktur bereit.
Die Runtime legt hRTCoreLayer fest, um das Handle anzugeben, das der Treiber verwenden soll, wenn der Treiber die Runtime zurückruft, um auf die Direct3D 10-Kernfunktionalität zuzugreifen (d. h. in Aufrufen der Funktionen, die das pUMCallbacks-Mitglied angibt).
Die Runtime stellt eine Tabelle ihrer wichtigsten Rückruffunktionen in der D3D10DDI_CORELAYER_DEVICECALLBACKS-Struktur bereit, auf die pUMCallbacks verweist. Der Benutzermodusanzeigetreiber ruft die zur Laufzeit bereitgestellten Kernrückruffunktionen auf, um den Status zu aktualisieren.
Hinweis Die Anzahl der Anzeigegeräte (Grafikkontexte), die gleichzeitig vorhanden sein können, ist nur durch den verfügbaren Systemspeicher begrenzt.