Freigeben über


D3D10DDIARG_CREATEDEVICE Struktur (d3d10umddi.h)

Die D3D10DDIARG_CREATEDEVICE Struktur beschreibt das zu erstellende Anzeigegerät.

Syntax

typedef struct D3D10DDIARG_CREATEDEVICE {
  D3D10DDI_HRTDEVICE            hRTDevice;
  UINT                          Interface;
  UINT                          Version;
  const D3DDDI_DEVICECALLBACKS  *pKTCallbacks;
  union {
    D3D10DDI_DEVICEFUNCS      *pDeviceFuncs;
    D3D10_1DDI_DEVICEFUNCS    *p10_1DeviceFuncs;
    D3D11DDI_DEVICEFUNCS      *p11DeviceFuncs;
    D3D11_1DDI_DEVICEFUNCS    *p11_1DeviceFuncs;
    D3DWDDM1_3DDI_DEVICEFUNCS *pWDDM1_3DeviceFuncs;
    D3DWDDM2_0DDI_DEVICEFUNCS *pWDDM2_0DeviceFuncs;
    D3DWDDM2_1DDI_DEVICEFUNCS *pWDDM2_1DeviceFuncs;
    D3DWDDM2_2DDI_DEVICEFUNCS *pWDDM2_2DeviceFuncs;
    D3DWDDM2_6DDI_DEVICEFUNCS *pWDDM2_6DeviceFuncs;
  };
  D3D10DDI_HDEVICE              hDrvDevice;
  DXGI_DDI_BASE_ARGS            DXGIBaseDDI;
  D3D10DDI_HRTCORELAYER         hRTCoreLayer;
  union {
    const D3D10DDI_CORELAYER_DEVICECALLBACKS      *pUMCallbacks;
    const D3D11DDI_CORELAYER_DEVICECALLBACKS      *p11UMCallbacks;
    const D3DWDDM2_0DDI_CORELAYER_DEVICECALLBACKS *pWDDM2_0UMCallbacks;
    const D3DWDDM2_2DDI_CORELAYER_DEVICECALLBACKS *pWDDM2_2UMCallbacks;
    const D3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS *pWDDM2_6UMCallbacks;
  };
  UINT                          Flags;
  PFND3D10DDI_RETRIEVESUBOBJECT *ppfnRetrieveSubObject;
} D3D10DDIARG_CREATEDEVICE;

Angehörige

hRTDevice

[in] Ein Handle für das Anzeigegerät (Grafikkontext), das das Handle angibt, das der Treiber verwenden soll, wenn er in die Direct3D-Laufzeit zurückruft (d. h., wenn der Treiber Funktionen aufruft, die vom pKTCallbacks Member angegeben werden).

Interface

[in] Die Direct3D-Schnittstellenversion. Die hohen 16 Bit speichern die Hauptversionsnummer (z. B. 10, 11 usw.); Die niedrige 16-Bit-Version speichert die Nebenversionsnummer (z. B. 0, 1, 2 usw.). Die Nebenversionsnummer wird erhöht, wenn eine Änderung an der Schnittstelle freigegeben wird.

Version

[in] Eine Zahl, mit der der Treiber ermitteln kann, wann die Direct3D-Laufzeit erstellt wurde. Die hohen 16 Bits stellen die Buildnummer dar; Die niedrigen 16 Bits stellen die Revisionsnummer dar.

Der Treiber ist nur erforderlich, um die hohen 16 Bit zu überwachen. Der Treiber sollte sicherstellen, dass die übergebene Laufzeitbuildversion größer oder gleich der aktuellen Buildversion des Treibers ist. Der Treiber sollte einen Fehler aus dem CreateDevice(D3D10)--Funktion zurückgeben, wenn die übergebene Buildversion nicht kompatibel ist.

pKTCallbacks

[in] Ein Zeiger auf eine D3DDDI_DEVICECALLBACKS Struktur, die eine Tabelle mit Direct3D-Laufzeitrückruffunktionen enthält, die der Treiber für den Zugriff auf Kerneldienste verwenden kann.

pDeviceFuncs

[in/out] Ein Zeiger auf eine D3D10DDI_DEVICEFUNCS Struktur, die der Anzeigetreiber im Benutzermodus mit einer Tabelle seiner Funktionen ausfüllt. Die Direct3D-Laufzeit verwendet diese Funktionen, um mit dem Anzeigetreiber für den Benutzermodus zu kommunizieren.

Der Treiber sollte seine Direct3D-Version 10.0-Funktionen in der bereitgestellten D3D10DDI_DEVICEFUNCS Struktur ausfüllen, wenn der Wert im Interface Member D3D10_0_DDI_INTERFACE_VERSIONist.

p10_1DeviceFuncs

[in/out] Ein Zeiger auf eine D3D10_1DDI_DEVICEFUNCS Struktur, die der Anzeigetreiber im Benutzermodus mit einer Tabelle seiner Funktionen ausfüllt. Version 10.1 der Direct3D-Laufzeit verwendet diese Funktionen, um mit dem Anzeigetreiber für den Benutzermodus zu kommunizieren.

Der Treiber sollte seine Direct3D-Version 10.1-Funktionen in der bereitgestellten D3D10_1DDI_DEVICEFUNCS Struktur ausfüllen, wenn der Wert im Interface Member D3D10_1_DDI_INTERFACE_VERSIONist.

Unterstützt ab Windows Vista mit SP1 und Windows Server 2008.

p11DeviceFuncs

[in/out] Ein Zeiger auf eine D3D11DDI_DEVICEFUNCS Struktur, die der Anzeigetreiber im Benutzermodus mit einer Tabelle seiner Funktionen ausfüllt. Version 11 der Direct3D-Laufzeit verwendet diese Funktionen, um mit dem Anzeigetreiber für den Benutzermodus zu kommunizieren.

Der Treiber sollte seine Direct3D-Version 11.0-Funktionen in der bereitgestellten D3D11DDI_DEVICEFUNCS Struktur ausfüllen, wenn der Wert im Interface Member D3D11_0_DDI_INTERFACE_VERSIONist.

Wird ab Windows 7 unterstützt.

p11_1DeviceFuncs

[in/out] Ein Zeiger auf eine D3D11_1DDI_DEVICEFUNCS Struktur, die der Anzeigetreiber im Benutzermodus mit einer Tabelle seiner Funktionen ausfüllt. Ab Version 11.1 verwendet die Direct3D-Laufzeit diese Funktionen, um mit dem Anzeigetreiber für den Benutzermodus zu kommunizieren.

Der Treiber sollte seine Direct3D-Version 11.1-Funktionen in der bereitgestellten D3D11_1DDI_DEVICEFUNCS Struktur ausfüllen, wenn der Wert im Interface Member D3D11_1_DDI_INTERFACE_VERSIONist.

Wird ab Windows 8 unterstützt.

pWDDM1_3DeviceFuncs

[in/out] Ein Zeiger auf eine D3DWDDM1_3DDI_DEVICEFUNCS Struktur, die der Anzeigetreiber im Benutzermodus mit einer Tabelle seiner Funktionen ausfüllt. Version 11.2 der Direct3D-Laufzeit verwendet diese Funktionen, um mit dem Anzeigetreiber für den Benutzermodus zu kommunizieren.

Der Treiber sollte seine Direct3D-Version 11.2-Funktionen in der bereitgestellten D3DWDDM1_3DDI_DEVICEFUNCS Struktur ausfüllen, wenn der Wert im Interface Member D3DWDDM1_3_DDI_INTERFACE_VERSIONist.

Wird ab Windows 8.1 unterstützt.

pWDDM2_0DeviceFuncs

[in/out] Ein Zeiger auf eine D3DWDDM2_0DDI_DEVICEFUNCS Struktur, die der Anzeigetreiber im Benutzermodus mit einer Tabelle seiner Funktionen ausfüllt. Der Treiber sollte seine Direct3D-Funktionen in der angegebenen Struktur ausfüllen, wenn der Wert im Interface Member D3DWDDM2_0_DDI_INTERFACE_VERSIONist.

pWDDM2_1DeviceFuncs

[in/out] Ein Zeiger auf eine D3DWDDM2_1DDI_DEVICEFUNCS Struktur, die der Anzeigetreiber im Benutzermodus mit einer Tabelle seiner Funktionen ausfüllt. Der Treiber sollte seine Direct3D-Funktionen in der angegebenen Struktur ausfüllen, wenn der Wert im Interface Member D3DWDDM2_0_DDI_INTERFACE_VERSIONist.

pWDDM2_2DeviceFuncs

[in/out] Ein Zeiger auf eine D3DWDDM2_2DDI_DEVICEFUNCS Struktur, die der Anzeigetreiber im Benutzermodus mit einer Tabelle seiner Funktionen ausfüllt. Der Treiber sollte seine Direct3D-Funktionen in der angegebenen Struktur ausfüllen, wenn der Wert im Interface Member D3DWDDM2_0_DDI_INTERFACE_VERSIONist.

pWDDM2_6DeviceFuncs

[in/out] Ein Zeiger auf eine D3DWDDM2_6DDI_DEVICEFUNCS Struktur, die der Anzeigetreiber im Benutzermodus mit einer Tabelle seiner Funktionen ausfüllt. Der Treiber sollte seine Direct3D-Funktionen in der angegebenen Struktur ausfüllen, wenn der Wert im Interface Member D3DWDDM2_0_DDI_INTERFACE_VERSIONist.

Unterstützt ab Windows 10, Version 1901.

hDrvDevice

[in/out] Ein Handle für das Anzeigegerät (Grafikkontext), das von der Direct3D-Laufzeit in nachfolgenden Treiberaufrufen zum Identifizieren des Anzeigegeräts verwendet wird.

DXGIBaseDDI

[in/out] Eine DXGI_DDI_BASE_ARGS Struktur, die Zugriff auf die DXGI ermöglicht. Die DXGI-DDI behandelt Aufgaben auf niedriger Ebene, z. B. das Darstellen gerenderter Frames in einer Ausgabe, steuern des Gammas und Verwalten eines Vollbildübergangs.

hRTCoreLayer

[in] Ein Handle, das der Treiber verwenden soll, wenn er zurück in die Direct3D-Laufzeit aufruft, um auf die Hauptfunktionalität von Direct3D 10 zuzugreifen (d. h., wenn der Treiber Funktionen aufruft, die der pUMCallbacks Member angibt).

pUMCallbacks

[in] Ein Zeiger auf eine D3D10DDI_CORELAYER_DEVICECALLBACKS-Struktur, die eine Tabelle mit Direct3D 10-Laufzeitrückruffunktionen enthält, die der Treiber für den Zugriff auf die Hauptfunktionalität des Benutzermodus verwenden kann.

p11UMCallbacks

[in] Ein Zeiger auf eine D3D11DDI_CORELAYER_DEVICECALLBACKS-Struktur, die eine Tabelle mit Direct3D 10- und Direct3D 11-Laufzeitrückruffunktionen enthält, die der Treiber für den Zugriff auf die kerne Benutzermoduslaufzeitfunktion verwenden kann.

Wird ab Windows 7 unterstützt.

pWDDM2_0UMCallbacks

[in] Zeigen Sie auf eine D3DWDDM2_0DDI_CORELAYER_DEVICECALLBACKS-Struktur, die eine Tabelle mit Direct3D 10, Direct3D 11 und WDDM 2.0-Laufzeitrückruffunktionen enthält, die der Treiber verwenden kann, um auf die hauptfunktion für den Benutzermodus zuzugreifen.

pWDDM2_2UMCallbacks

[in] Zeiger auf eine D3DWDDM2_2DDI_CORELAYER_DEVICECALLBACKS-Struktur, die eine Tabelle mit Direct3D 10, Direct3D 11, WDDM 2.0 und WDDM 2.2-Laufzeitrückruffunktionen enthält, die der Treiber verwenden kann, um auf die Kernfunktionen für den Benutzermodus zuzugreifen.

pWDDM2_6UMCallbacks

[in] Zeiger auf eine D3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS-Struktur, die eine Tabelle mit Direct3D 10-, Direct3D 11-, WDDM 2.0-, WDDM 2.2- und WDDM 2.6-Laufzeitrückruffunktionen enthält, die der Treiber verwenden kann, um auf die Hauptfunktion für den Benutzermodus zuzugreifen.

Flags

[in] Ein gültiger BITWEISER ODER von Flagwerten, die identifizieren, wie das Anzeigegerät erstellt wird. Die Direct3D-Laufzeit unterstützt die folgenden Flags:

Flagge Bedeutung
D3D10DDI_CREATEDEVICE_FLAG_DISABLE_EXTRA_THREAD_CREATION (0x1) Wenn dieses Kennzeichen festgelegt ist, sollte der Anzeigetreiber für den Benutzermodus nicht mehrere Threads gleichzeitig ausführen, wenn er Aufrufe an seine Funktionen aus der Direct3D-Laufzeit verarbeitet. Ein Treiber kann in der Regel mehrere Threads starten und ausführen, um Vorgänge schneller zu verarbeiten, es sei denn, das D3D10DDI_CREATEDEVICE_FLAG_DISABLE_EXTRA_THREAD_CREATION Flag ist festgelegt.
D3D11DDI_CREATEDEVICE_FLAG_SINGLETHREADED (0x10) Informiert den Anzeigetreiber für den Benutzermodus, dass die Anwendung single threaded ist. Die Direct3D 11-Laufzeit ermöglicht es mehreren Anwendungsthreads, den Treiber einzugeben, wenn der Treiber diesen Betriebsmodus zulässt. Nicht alle Anwendungen können jedoch mehrere Threads ausführen. Wenn dieses Kennzeichen festgelegt ist, erwartet der Treiber nicht, dass mehrere Threads sie eingeben und gleichzeitig ausgeführt werden. Der Treiber kann die Synchronisierung vermeiden, wenn dieses Flag festgelegt ist. Wird ab Windows 7 unterstützt.
Das Flag, das im 0xE Mask des Flags Members festgelegt ist Stellt die Ebene der 3D-Pipeline dar, die der Treiber für das Anzeigegerät unterstützen soll. Siehe Anmerkungen. Wird ab Windows 7 unterstützt.

ppfnRetrieveSubObject

[in/out] Ein Zeiger auf eine RetrieveSubObject(D3D11_1) Funktion, die Unterparts eines Direct3D-Treibergeräteobjekts abruft.

Wird ab Windows 8 unterstützt.

Bemerkungen

Der Treiber untersucht Werte in der Interface und Version Member, um zu bestimmen, ob die D3D10DDI_DEVICEFUNCS, D3D10_1DDI_DEVICEFUNCS, D3D11DDI_DEVICEFUNCS, D3D11_1DDI_DEVICEFUNCSoder D3DWDDM1_3DDI_DEVICEFUNCS Struktur, die die pDeviceFuncs, p10_1DeviceFuncs, p11DeviceFuncs, p11_1DeviceFuncsoder pWDDM1_3DeviceFuncs Member zeigt mit den Funktionen des Treibers. Die folgenden Konstanten aus D3d10umddi.h sind Beispiele für die Konstanten, die der Treiber in Interface und Versionfinden kann:

#define D3D10_1_DDI_MINOR_VERSION 2
#define D3D10_1_DDI_INTERFACE_VERSION ((D3D10_DDI_MAJOR_VERSION << 16) | D3D10_1_DDI_MINOR_VERSION)
#define D3D10_1_DDI_BUILD_VERSION 1
#define D3D10_1_DDI_SUPPORTED ((((UINT64)D3D10_1_DDI_INTERFACE_VERSION) << 32) | (((UINT64)D3D10_1_DDI_BUILD_VERSION) << 16))

Weitere mögliche Kombinationen von Konstanten für verschiedene Versionen des Betriebssystems, Direct3D und Windows Display Driver Model (WDDM) sind im D3d10umddi.h Header aufgeführt.

Für das Flag, das im 0xE Mask des Flags Member festgelegt ist, verwendet der Treiber die folgende Konstante und Makros, um einen der Werte aus der D3D11DDI_3DPIPELINELEVEL Enumeration zu extrahieren, die die zu unterstützende 3D-Pipelineebene darstellt. Der Wert im Flags Member ist wie das Caps Member der D3D11DDI_3DPIPELINESUPPORT_CAPS Struktur formatiert.

#define D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_SHIFT (0x1)
#define D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_MASK (0x7 << D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_SHIFT)
#define D3D11DDI_EXTRACT_3DPIPELINELEVEL_FROM_FLAGS( Flags ) \
    ((D3D11DDI_3DPIPELINELEVEL)(((Flags) & D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_MASK) >> \
    D3D11DDI_CREATEDEVICE_FLAG_3DPIPELINESUPPORT_SHIFT))

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista
Header- d3d10umddi.h (include D3d10umddi.h)

Siehe auch

CreateDevice(D3D10)

D3D10DDI_CORELAYER_DEVICECALLBACKS

D3D10DDI_DEVICEFUNCS

D3D10_1DDI_DEVICEFUNCS

D3D11DDI_3DPIPELINELEVEL

D3D11DDI_3DPIPELINESUPPORT_CAPS

D3D11DDI_CORELAYER_DEVICECALLBACKS

D3D11DDI_DEVICEFUNCS

D3D11_1DDI_DEVICEFUNCS

D3DDDI_ALLOCATIONLIST

D3DDDI_DEVICECALLBACKS

D3DDDI_PATCHLOCATIONLIST

D3DWDDM1_3DDI_DEVICEFUNCS

DXGI_DDI_BASE_ARGS

DxgkDdiCreateDevice

RetrieveSubObject(D3D11_1)