Unterstützung von DXGI DDI

Zur Unterstützung der DxGI-Gerätetreiberschnittstelle (Microsoft DirectX Graphics Infrastructure, DDI) muss der Anzeigetreiber im Benutzermodus die Headerdatei Dxgiddi.h enthalten. Dxgiddi.h enthält auch die Dxgitype.h-Headerdatei , die Definitionen enthält, die mit DXGI-Konstrukten auf Anwendungsebene gemeinsam verwendet werden. Dxgiddi.h definiert mehrere Benutzermodus-Anzeigetreibereinstiegspunkte und eine DXGI-Rückruffunktion, die der Treiber für die Kommunikation mit dem Kernel (einschließlich des Anzeige-Miniporttreibers) verwenden kann.

Die Microsoft Direct3D-Runtime bietet Zugriff auf dxGI DDI in der DXGI_DDI_BASE_ARGS-Struktur , auf die das DXGIBaseDDI-Element der D3D10DDIARG_CREATEDEVICE-Struktur in einem Aufruf der CreateDevice(D3D10) -Funktion verweist. Der Benutzermodusanzeigetreiber stellt Zeiger auf DXGI-Funktionen bereit.

Der Treiber implementiert diese Funktionen über Member der Strukturen, auf die die pDXGIDDIBaseFunctionsXxx-Member von DXGI_DDI_BASE_ARGS verweisen. Der Treiber sollte den Zeiger auf die DXGI-Rückruffunktionstabelle aufzeichnen, auf die das pDXGIBaseCallbacks-Elementvon DXGI_DDI_BASE_ARGS zur späteren Verwendung verweist. Der Treiber sollte den Zeiger auf die DXGI-Rückruffunktionstabelle aufzeichnen, anstatt den einzelnen Zeiger auf die DXGI-Rückruffunktion aufzuzeichnen, da die Direct3D-Runtime die Adresse der Rückruffunktion ändern kann, wenn kein Thread innerhalb des Benutzermodusanzeigetreibers vorhanden ist.

Für Softwarerasterizer ist eine weitere DxGI-Anzeigetreiberanforderung für den Benutzermodus erforderlich. Ein solcher Benutzermodus-Anzeigetreiber (genauer gesagt, jeder Treiber, der keine Hardware unterstützt, die mit der DDI-Implementierung von Direct3D Version 9 auf der Grafikkarte geteilt wird) muss den DXGI_STATUS_NO_REDIRECTION-Wert anstelle des S_OK-Werts aus seiner CreateDevice(D3D10) -Funktion zurückgeben. Dieser Rückgabewert gibt DXGI an, dass der Freigegebene Ressourcenpräsentationspfad nicht verwendet werden sollte, um die Kommunikation mit dem Desktopfenster-Manager (DWM) zu beeinflussen. Der Freigegebene Ressourcenpräsentationspfad wird erstellt, wenn Aufrufe von Shared-Resource-Funktionen (d. h. CreateResource(D3D10) und OpenResource(D3D10) mit dem D3D10_DDI_RESOURCE_MISC_SHARED Flag festgelegt werden. DXGI sollte jedoch stattdessen Techniken verwenden, die für eine Swapchain relevant sind, deren Puffer nur für die CPU verfügbar sind. Beispielsweise sollte DXGI gerenderte Daten aus dem Hintergrundpuffer auf den Desktop verschieben, indem andere Mittel als der freigegebene Ressourcenpräsentationspfad verwendet werden. In dieser Situation ruft DXGI tatsächlich die PresentDXGI-Funktion des Treibers auf, um gerenderte Daten zu verschieben, anstatt die Kommunikation mit dem DWM zu beeinflussen.

Direct3D Version 10 DXGI-Funktionen

In diesem Abschnitt werden die DxGI-Funktionen (Microsoft DirectX Graphics Infrastructure) beschrieben, die von der Benutzermodus-Anzeigetreiber-DLL für die Microsoft Direct3D Version 10 Runtime bereitgestellt werden. Der Treiber stellt Zeiger auf DXGI-Funktionen über Elemente der DXGI_DDI_BASE_FUNCTIONS-Struktur in einem Aufruf der CreateDevice(D3D10) -Funktion des Benutzermodusanzeigetreibers bereit.

BltDXGI: GetGammaCapsDXGI

PresentDXGI: QueryResourceResidencyDXGI

ResolveSharedResourceDXGI: RotateResourceIdentitiesDXGI

SetDisplayModeDXGI: SetResourcePriorityDXGI

Direct3D Version 11.1 DXGI-Funktionen

In diesem Abschnitt werden die DXGI-Funktionen (Microsoft DirectX Graphics Infrastructure) beschrieben, die von Anzeigetreibern im Benutzermodus implementiert werden und für die Microsoft Direct3D Version 11.1-Runtime hinzugefügt werden. Direct3D 11.1 wurde mit Windows 8 eingeführt.

Die Benutzermodus-Anzeigetreiber-DLL exportiert die OpenAdapter10_2-Funktion und stellt Zeiger auf adapterspezifische Funktionen über Member der D3D10_2DDI_ADAPTERFUNCS-Struktur bereit, wenn die Laufzeit CreateDevice(D3D10) aufruft.

Der Treiber stellt Zeiger auf DXGI-Funktionen der Direct3D-Version 11.1 über Elemente der DXGI1_2_DDI_BASE_FUNCTIONS-Struktur in einem Aufruf der adapterspezifischen CreateDevice(D3D10) -Funktion des Benutzermodusanzeigetreibers bereit.

Direct3D Version 11.2 DXGI-Funktionen

Auf den Referenzseiten in diesem Abschnitt werden DXGI-Funktionen (Microsoft DirectX Graphics Infrastructure) beschrieben, die von Anzeigetreibern im Benutzermodus implementiert werden und für die Microsoft Direct3D Version 11.2-Runtime hinzugefügt werden. Direct3D 11.2 wurde mit Windows 8.1 eingeführt.

Die Dll des Benutzermodusanzeigetreibers exportiert die OpenAdapter10_2-Funktion und stellt Zeiger auf adapterspezifische Funktionen über Member der D3D10_2DDI_ADAPTERFUNCS-Struktur bereit, wenn die Laufzeit CreateDevice(D3D10) aufruft.

Der Treiber stellt Zeiger auf Direct3D-DXGI-Funktionen der Version 11.2 über Member der DXGI1_3_DDI_BASE_FUNCTIONS-Struktur in einem Aufruf der adapterspezifischen CreateDevice(D3D10) -Funktion des Benutzermodusanzeigetreibers bereit.

PFNDDXGIDDI_PRESENT_MULTIPLANE_OVERLAYCB: PFNDDXGIDDI_PRESENTCB

PFNDDXGIDDI_SUBMITPRESENTBLTTOHWQUEUECB: PFNDDXGIDDI_SUBMITPRESENTTOHWQUEUECB

Hinweis

Zusätzliche DXGI-Funktionen, die von der Direct3D 11.2-Runtime unterstützt werden, sind im Abschnitt Mehrschichtfunktionen enthalten, die vom Benutzermodustreiber implementiert werden.