DXGI1_1_DDI_BASE_FUNCTIONS-Struktur (dxgiddi.h)

Die DXGI1_1_DDI_BASE_FUNCTIONS-Struktur enthält Zeiger auf Funktionen, die der 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 GDI-Oberflächen und die Verwaltung eines Vollbildübergangs.

Syntax

typedef struct DXGI1_1_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;
} DXGI1_1_DDI_BASE_FUNCTIONS;

Member

pfnPresent

Ein Zeiger auf die PresentDXGI-Funktion des Treibers.

pfnGetGammaCaps

Ein Zeiger auf die GetGammaCapsDXGI-Funktion des Treibers.

pfnSetDisplayMode

Die SetDisplayModeDXGI-Funktion wechselt zu einem Anzeigemodus oder primären Modus, den der GDI-Desktop nicht unterstützt.

Die Microsoft Direct3D-Runtime ruft SetDisplayModeDXGI auf, um zu einem Anzeigemodus oder primären Modus zu wechseln, den der GDI-Desktop nicht unterstützt. In der folgenden Liste werden Beispiele für solche Vorwahlen beschrieben:

  • Primärries, die mit 10-Bits-pro-Kanal (10:10:10:2) erstellt werden, anzeige- und renderzielformate (z. B. D3DFMT_A2R10G10B10)
  • Primaries mit mehreren Stichproben, bei denen die mehrfache Stichprobenentnahme während des Ausscannens durchgeführt wird
  • Persistente Primaries, die Von Microsoft DirectX Version 10-Anwendungen im Vollbildmodus verwendet werden
Die Direct3D-Runtime ruft die CreateResource(D3D10) -Funktion des Anzeigetreibers für den Benutzermodus auf, um die zu scannende primäre Instanz zu erstellen. Der Treiber sollte die Hardware jedoch nur so programmieren, dass sie ausgecheckt wird, wenn seine SetDisplayModeDXGI-Funktion aufgerufen wird. Daher legt die Runtime die Elemente hResource und SubResourceIndex der DXGI_DDI_ARG_SETDISPLAYMODE Struktur fest, auf die der pDisplayModeData-Parameter verweist, auf das primäre Element, das durch den Aufruf der CreateResourceD3D10-Funktion des Treibers erstellt wurde. Der Treiber sollte dann die primäre Instanz, die hResource und SubResourceIndex darstellen, in ein primäres Zuordnungshandle übersetzen. Nachdem der Treiber diese Übersetzung durchgeführt hat, sollte der Treiber das resultierende Handle in einem Aufruf der PfnSetDisplayModeCb-Funktion übergeben, die dann einen Aufruf der DxgkDdiCommitVidPn-Funktion des Anzeigeminiporttreibers initiiert.

Der Benutzermodus-Anzeigetreiber kann den hPrimaryAllocation-Member der D3DDDICB_SETDISPLAYMODE-Struktur im Aufruf von pfnSetDisplayModeCb festlegen, um jede Zuordnung zu überprüfen. Die Zuordnung muss jedoch als primär markiert werden (d. a. der Anzeigetreiber für den Benutzermodus muss das Flag primäres Bitfeld im Flags-Member der D3DDDI_ALLOCATIONINFO-Struktur in einem Aufruf der pfnAllocateCb-Funktion festgelegt haben, um die Zuordnung zu erstellen).

pDisplayModeData

Ein Zeiger auf eine DXGI_DDI_ARG_SETDISPLAYMODE-Struktur , die Parameter zum Festlegen des Anzeigemodus angibt.

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

Die ResolveSharedResourceDXGI-Funktion informiert einen Anzeigetreiber im Benutzermodus darüber, dass sich der Besitz einer freigegebenen Oberfläche geändert hat oder dass eine Oberfläche für die GDI-Interoperation verwendet wird.

Die Direct3D-Runtime ruft ResolveSharedResourceDXGI auf, wenn eine Anwendung eine der folgenden Funktionen aufruft:

  • IDXGIKeyedMutex::ReleaseSynch auf einer synchronisierten freigegebenen Oberfläche
  • IDXGISurface1::GetDC für eine interoperable GDI-Oberfläche
Die Runtime ruft die ResolveSharedResourceDXGI-Funktion des Treibers bei jeder Änderung eines freigegebenen Surface-Besitzers auf oder wenn eine Oberfläche für GDI-Interoperation verwendet wird.

Der Treiber implementiert ResolveSharedResourceDXGI , um Ressourcen für mehrere GPU-Szenarien angemessen zu verwalten. Jede Ressource kann auf den Arbeitsspeicher aufgeteilt werden, auf dem mehrere GPUs gerendert werden sollen. Der Treiber kann ResolveSharedResourceDXGI implementieren, um jede Ressource zu remerieren, damit der neue Ressourcenbesitzer über die zusammengeführte Ressource verfügt. Der Treiber muss alle teilweise erstellten Befehlspuffer leeren, die die Ressource möglicherweise ändern.

Windows 7 stellt das IS_DXGI1_1_BASE_FUNCTIONS Makro bereit (das in der Headerdatei D3D10umddi.h definiert ist), damit der Benutzermodus-Anzeigetreiber bestimmen kann, ob er einen Zeiger auf eine DXGI1_1_DDI_BASE_FUNCTIONS - oder DXGI_DDI_BASE_FUNCTIONS-Struktur in einem Aufruf seiner CreateDevice(D3D10) -Funktion empfängt. Die DXGI1_1_DDI_BASE_FUNCTIONS-Struktur enthält den pfnResolveSharedResource-Member , den der Treiber mit einem Zeiger auf seine ResolveSharedResourceDXGI-Funktion füllen kann. Wenn IS_DXGI1_1_BASE_FUNCTIONS TRUE zurückgibt, erwartet der Treiber, dass er einen Zeiger auf eine DXGI1_1_DDI_BASE_FUNCTIONS-Struktur im pDXGIDDIBaseFunctions-Member der DXGI_DDI_BASE_ARGS Struktur empfängt, die das DXGIBaseDDI-Element der D3D10DDIARG_CREATEDEVICE-Struktur angibt. Andernfalls erwartet der Treiber, wenn IS_DXGI1_1_BASE_FUNCTIONS FALSE zurückgibt, einen Zeiger auf eine DXGI_DDI_BASE_FUNCTIONS-Struktur zu erhalten. Windows 7 stellt das makro IS_DXGI1_1_BASE_FUNCTIONS bereit, damit Treiber neuerer Versionen mit älteren Runtimeversionen verwendet werden können. Die Treiber können dann bestimmen, ob sie den Arbeitsspeicher beschädigen, wenn sie versuchen, das pfnResolveSharedResource-Element von DXGI1_1_DDI_BASE_FUNCTIONS mit einem Zeiger auf die ResolveSharedResourceDXGI-Funktion zu füllen.

pResourceData

Ein Zeiger auf eine DXGI_DDI_ARG_RESOLVESHAREDRESOURCE-Struktur , die Parameter für das Anzeigegerät und die Dem Anzeigegerät zugeordnete Oberfläche angibt.

Hinweise

Windows 7 stellt das IS_DXGI1_1_BASE_FUNCTIONS Makro bereit (das in der Headerdatei D3D10umddi.h definiert ist), damit der Benutzermodus-Anzeigetreiber bestimmen kann, ob er einen Zeiger auf eine DXGI1_1_DDI_BASE_FUNCTIONS- oder DXGI_DDI_BASE_FUNCTIONS-Struktur in einem Aufruf seiner CreateDevice(D3D10) -Funktion empfängt. Die DXGI1_1_DDI_BASE_FUNCTIONS-Struktur enthält den pfnResolveSharedResource-Member , den der Treiber mit einem Zeiger auf seine ResolveSharedResourceDXGI-Funktion füllen kann. Wenn IS_DXGI1_1_BASE_FUNCTIONS TRUE zurückgibt, erwartet der Treiber, dass er einen Zeiger auf eine DXGI1_1_DDI_BASE_FUNCTIONS-Struktur im pDXGIDDIBaseFunctions-Member der DXGI_DDI_BASE_ARGS Struktur empfängt, die das DXGIBaseDDI-Element der D3D10DDIARG_CREATEDEVICE-Struktur angibt. Andernfalls erwartet der Treiber, wenn IS_DXGI1_1_BASE_FUNCTIONS FALSE zurückgibt, einen Zeiger auf eine DXGI_DDI_BASE_FUNCTIONS-Struktur zu erhalten. Windows 7 stellt das makro IS_DXGI1_1_BASE_FUNCTIONS bereit, damit Treiber neuerer Versionen mit älteren Runtimeversionen verwendet werden können. Die Treiber können dann bestimmen, ob sie den Arbeitsspeicher beschädigen, wenn sie versuchen, das pfnResolveSharedResource-Element von DXGI1_1_DDI_BASE_FUNCTIONS mit einem Zeiger auf eine ResolveSharedResourceDXGI-Funktion zu füllen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) DXGI1_1_DDI_BASE_FUNCTIONS wird ab dem Windows 7-Betriebssystem unterstützt.
Kopfzeile dxgiddi.h (include D3d10umddi.h)

Weitere Informationen

BltDXGI

CreateDevice(D3D10)

D3D10DDIARG_CREATEDEVICE

DXGI_DDI_BASE_ARGS

DXGI_DDI_BASE_FUNCTIONS

GetGammaCapsDXGI

PresentDXGI

QueryResourceResidencyDXGI

ResolveSharedResource

ResolveSharedResourceDXGI

RotateResourceIdentitiesDXGI

SetDisplayModeDXGI

SetResourcePriorityDXGI