DXGI1_3_DDI_BASE_FUNCTIONS-Struktur (dxgiddi.h)

Enthält Zeiger auf Funktionen, die ein Windows Display Driver Model (WDDM) 1.3 und höher-Benutzermodus-Anzeigetreiber implementieren kann, um Aufgaben auf niedriger Ebene auszuführen, z. B. die Darstellung gerenderter Frames für eine Ausgabe, das Steuern von Gamma, das Abrufen von Benachrichtigungen zu freigegebenen und kompatiblen Windows-Grafikgeräteschnittstellen (GDI) und das Verwalten eines Vollbildübergangs.

Syntax

typedef struct DXGI1_3_DDI_BASE_FUNCTIONS {
  HRESULT()(DXGI_DDI_ARG_PRESENT *) * pfnPresent;
  HRESULT()(DXGI_DDI_ARG_GET_GAMMA_CONTROL_CAPS *) * pfnGetGammaCaps;
  HRESULT()(DXGI_DDI_ARG_SETDISPLAYMODE *) * pfnSetDisplayMode;
  HRESULT()(DXGI_DDI_ARG_SETRESOURCEPRIORITY *) * pfnSetResourcePriority;
  HRESULT()(DXGI_DDI_ARG_QUERYRESOURCERESIDENCY *) * pfnQueryResourceResidency;
  HRESULT()(DXGI_DDI_ARG_ROTATE_RESOURCE_IDENTITIES *) * pfnRotateResourceIdentities;
  HRESULT()(DXGI_DDI_ARG_BLT *) * pfnBlt;
  HRESULT()(DXGI_DDI_ARG_RESOLVESHAREDRESOURCE *) * pfnResolveSharedResource;
  HRESULT()(DXGI_DDI_ARG_BLT1 *) * pfnBlt1;
  HRESULT()(DXGI_DDI_ARG_OFFERRESOURCES *) * pfnOfferResources;
  HRESULT()(DXGI_DDI_ARG_RECLAIMRESOURCES *) * pfnReclaimResources;
  HRESULT()(DXGI_DDI_ARG_GETMULTIPLANEOVERLAYCAPS *) * pfnGetMultiplaneOverlayCaps;
  HRESULT()(DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS *) * pfnGetMultiplaneOverlayGroupCaps;
  HRESULT()(void *) * pfnReserved1;
  HRESULT()(DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY *) * pfnPresentMultiplaneOverlay;
  HRESULT()(void *) * pfnReserved2;
  HRESULT()(DXGI_DDI_ARG_PRESENT1 *) * pfnPresent1;
  HRESULT()(DXGI_DDI_ARG_CHECKPRESENTDURATIONSUPPORT *) * pfnCheckPresentDurationSupport;
} DXGI1_3_DDI_BASE_FUNCTIONS;

Member

pfnPresent

Ein Zeiger auf die PresentDXGI-Funktion des Treibers.

pfnGetGammaCaps

Ein Zeiger auf die GetGammaCapsDXGI-Funktion des Treibers.

pfnSetDisplayMode

Ein Zeiger auf die SetDisplayModeDXGI-Funktion des Treibers.

pfnSetResourcePriority

Ein Zeiger auf die SetResourcePriorityDXGI-Funktion des Treibers.

pfnQueryResourceResidency

Ein Zeiger auf die QueryResourceResidencyDXGI-Funktion des Treibers.

pfnRotateResourceIdentities

Ein Zeiger auf die RotateResourceIdentitiesDXGI-Funktion des Treibers.

pfnBlt

Ein Zeiger auf die BltDXGI-Funktion des Treibers.

pfnResolveSharedResource

Ein Zeiger auf die ResolveSharedResourceDXGI-Funktion des Treibers.

pfnBlt1

Ein Zeiger auf die Blt1DXGI-Funktion des Treibers.

pfnOfferResources

Ein Zeiger auf die pfnOfferResources-Funktion des Treibers .

pfnReclaimResources

Ein Zeiger auf die pfnReclaimResources-Funktion des Treibers .

pfnGetMultiplaneOverlayCaps

Wird von der DXGI-Runtime aufgerufen, um anzufordern, dass der Benutzermodusanzeigetreiber grundlegende Funktionen der Überlagerungsebene erhält. Optional implementiert von WDDM 1.3 und höher Benutzermodus-Anzeigetreibern.

pfnGetMultiplaneOverlayGroupCaps

Wird von der DXGI-Runtime aufgerufen, um anzufordern, dass der Benutzermodusanzeigetreiber eine Gruppe von Funktionen der Überlagerungsebene erhält. Optional implementiert von WDDM 1.3 und höher Benutzermodus-Anzeigetreibern.

Hinweis Diese Funktion wird für jede der Vom Treiber gemeldeten Funktionsgruppen aufgerufen.
 

Syntax

pfnGetMultiplaneOverlayGroupCaps GetMultiplaneOverlayGroupCaps;

HRESULT __stdcall* GetMultiplaneOverlayGroupCaps(
   DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS *pGroupCaps
)
{ ... }

Parameter

pGroupCaps Ein Zeiger auf eine DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS-Struktur , die die Gruppe der Funktionen der Überlagerungsebene angibt.

Rückgabewert

Gibt einen der folgenden Werte zurück.

  • S_OK Der Treiber hat die Funktionen der Überlagerungsebene erfolgreich bereitgestellt.
  • D3DDDIERR_DEVICEREMOVED Der Treiber hat erkannt, dass die Grafikkarte entfernt wurde, sodass der Treiber den Vorgang nicht abgeschlossen hat. Wenn der Treiber die Entfernung des Adapters nicht erkennt, muss der Treiber diesen Fehlercode nicht zurückgeben.

pfnReserved1

Ist für das System reserviert.

pfnPresentMultiplaneOverlay

Wird von der DXGI-Runtime (Microsoft DirectX Graphics Infrastructure) aufgerufen, um den Anzeigetreiber im Benutzermodus zu benachrichtigen, dass eine Anwendung das Rendern abgeschlossen hat, und fordert an, dass der Treiber die Quelloberfläche entweder durch Kopieren oder Kippen anzeigt oder dass der Treiber einen Farbfüllvorgang ausführt. Muss von Windows Display Driver Model (WDDM) 1.3 oder höher-Treibern implementiert werden, die Mehrplanenüberlagerungen unterstützen.

Wenn der Benutzermodusanzeigetreiber die Verarbeitung eines Aufrufs dieser Funktion erfolgreich abgeschlossen hat, stellt er der Anzeige die Quelloberfläche dar, indem er die DXGI-Funktion (pfnPresentMultiPlaneOverlayCb) aufruft .

PFND3DDDI_PRESENTMULTIPLANEOVERLAY pfnPresentMultiPlaneOverlay;

HRESULT __stdcall* pfnPresentMultiPlaneOverlay(
   DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY *pPresentDXGI
)
{ ... }

Parameter

pPresentDXGI Ein Zeiger auf eine DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY Struktur, die beschreibt, wie auf der Zieloberfläche angezeigt wird.

Rückgabewert

Wenn diese Rückruffunktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.

pfnReserved2

Ist für das System reserviert.

pfnPresent1

Benachrichtigt den Anzeigetreiber im Benutzermodus, dass das Rendern einer Anwendung abgeschlossen ist und dass der gesamte Besitz der freigegebenen Ressource freigegeben wird, und fordert an, dass der Treiber auf der Zieloberfläche angezeigt wird.

Syntax

pfnPresent1 Present1DXGI;

HRESULT __stdcall* Present1DXGI(
   DXGI_DDI_ARG_PRESENT1 *pPresentData
)
{ ... }

Parameter

pPresentData [in] Ein Zeiger auf eine DXGI_DDI_ARG_PRESENT1 Struktur, die beschreibt, wie auf der Zieloberfläche angezeigt wird.

Hinweise

Der hDevice-Member der DXGI_DDI_ARG_PRESENT1 Struktur, auf die der pPresentData-Parameter verweist, ist das gleiche Handle, das die CreateDevice(D3D10) -Funktion des Treibers an die Runtime im hDrvDevice-Element der D3D10DDIARG_CREATEDEVICE-Struktur übergeben hat. Daher müssen Treiberschreiber den Typ dieses Handles sorgfältig definieren. Darüber hinaus können Treiber verschiedene Implementierungen der pfnPresent1(DXGI) -Funktion bereitstellen, je nachdem, welche DDI-Implementierung den Aufruf von CreateDevice(D3D10) verarbeitet hat. Die Runtime kombiniert niemals Treiberhandles über DDI-Implementierungen hinweg.

Das pDXGIContext-Element von DXGI_DDI_ARG_PRESENT1 ist ein undurchsichtiger Kommunikationsmechanismus. Die Runtime übergibt diesen DXGI-Kontext an den Treiber. Der Treiber sollte diesen DXGI-Kontext unverändert in den pDXGIContext-Member der DXGIDDICB_PRESENT-Struktur kopieren, wenn der Treiber die pfnPresentCbDXGI-Funktion aufruft.

Der Treiber muss alle teilweise erstellten Renderdaten (Befehlspuffer) mithilfe der pfnRenderCb-Funktion übermitteln, und der Treiber muss einen einzelnen Aufruf von pfnPresentCbDXGI durchführen. Beim Aufrufen eines dieser Rückrufe muss der Treiber die Threadingregeln der PresentDXGI-Funktion befolgen.

Hinweis Wenn die PfnPresent1(DXGI) -Funktion des Treibers sRGB-formatierten Inhalt von einer Quelloberfläche auf eine Nicht-sRGB-Zieloberfläche kopiert, sollte der Treiber den sRGB-Inhalt unverändert kopieren (d. a. der Treiber sollte die sRGB-Konvertierung nicht in eine lineare Konvertierung durchführen).

Threadingregeln

Diese Regeln gelten unabhängig davon, ob der Treiber freies Threading unterstützt oder nicht:

  • Der Treiber gibt die Unterstützung für freies Threading an, indem der Caps-Member der D3D11DDI_THREADING_CAPS-Struktur auf D3D11DDICAPS_FREETHREADED festgelegt wird. In diesem Fall:
    • Es kann jeweils nur ein einzelner Thread an einem HCONTEXT-Kontexthandle arbeiten.
    • Der Treiber darf pfnPresentCbDXGI nur aufrufen, wenn die PfnPresent1(DXGI) -Funktion des Treibers aufgerufen wird, und von demselben Thread, der pfnPresent1(DXGI) aufgerufen hat.
  • Wenn der Treiber keine Unterstützung für Freethreading angibt, kann er die Rückruffunktionen nur aufrufen, wenn ein Thread den Treiber aufgerufen hat. Der Treiber muss auch weiterhin den pfnPresentCbDXGI-Rückruf im Kontext von pfnPresent1(DXGI) aufrufen.
Weitere Informationen zum Threading finden Sie unter Änderungen von Direct3D 10.

pfnCheckPresentDurationSupport

Ein Zeiger auf die PfnCheckPresentDurationSupport(DXGI) -Funktion des Treibers.

Hinweise

Weitere Informationen zur Verwendung dieser Struktur finden Sie unter Unterstützen von DXGI DDI.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1,WDDM 1.3 und höher
Unterstützte Mindestversion (Server) Windows Server 2012 R2
Kopfzeile dxgiddi.h (include D3d10umddi.h)

Weitere Informationen

CreateDevice(D3D10)

D3D10DDIARG_CREATEDEVICE

DXGI1_2_DDI_BASE_FUNCTIONS

DXGI_DDI_BASE_ARGS

DXGI_DDI_BASE_FUNCTIONS