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;

Member

hRTDevice

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

Interface

[in] Die Direct3D-Schnittstellenversion. Die hohen 16 Bits speichern die Hauptversionsnummer (z. B. 10, 11 usw.); die niedrigen 16 Bits speichern die Nebenfreigabenummer (z. B. 0, 1, 2 usw.). Die Nebenversionsnummer wird erhöht, wenn eine Änderung an der Schnittstelle veröffentlicht wird.

Version

[in] Eine Zahl, die der Treiber verwenden kann, um zu identifizieren, wann die Direct3D-Runtime 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 Bits zu überwachen. Der Treiber sollte sicherstellen, dass die übergebene Runtimebuildversion größer oder gleich der aktuellen Buildversion des Treibers ist. Der Treiber sollte einen Fehler von seiner CreateDevice(D3D10) -Funktion zurückgeben, wenn die in der Buildversion übergebene nicht kompatibel ist.

pKTCallbacks

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

pDeviceFuncs

[ein/aus] Ein Zeiger auf eine D3D10DDI_DEVICEFUNCS Struktur, die der Benutzermodusanzeigetreiber mit einer Tabelle seiner Funktionen füllt. Die Direct3D-Runtime verwendet diese Funktionen, um mit dem Benutzermodusanzeigetreiber zu kommunizieren.

Der Treiber sollte seine Direct3D- Version 10.0-Funktionen in der angegebenen D3D10DDI_DEVICEFUNCS-Struktur ausfüllen, wenn der Wert im Interface-ElementD3D10_0_DDI_INTERFACE_VERSION ist.

p10_1DeviceFuncs

[ein/aus] Ein Zeiger auf eine D3D10_1DDI_DEVICEFUNCS Struktur, die der Benutzermodusanzeigetreiber mit einer Tabelle seiner Funktionen füllt. Version 10.1 der Direct3D-Runtime verwendet diese Funktionen, um mit dem Benutzermodusanzeigetreiber zu kommunizieren.

Der Treiber sollte seine Direct3D- Version 10.1-Funktionen in der angegebenen D3D10_1DDI_DEVICEFUNCS-Struktur ausfüllen, wenn der Wert im Interface-ElementD3D10_1_DDI_INTERFACE_VERSION ist.

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

p11DeviceFuncs

[ein/aus] Ein Zeiger auf eine D3D11DDI_DEVICEFUNCS Struktur, die der Benutzermodusanzeigetreiber mit einer Tabelle seiner Funktionen füllt. Version 11 der Direct3D-Runtime verwendet diese Funktionen, um mit dem Benutzermodusanzeigetreiber zu kommunizieren.

Der Treiber sollte seine Direct3D-Version 11.0-Funktionen in der angegebenen D3D11DDI_DEVICEFUNCS-Struktur ausfüllen, wenn der Wert im Interface-ElementD3D11_0_DDI_INTERFACE_VERSION ist.

Wird ab Windows 7 unterstützt.

p11_1DeviceFuncs

[ein/aus] Ein Zeiger auf eine D3D11_1DDI_DEVICEFUNCS Struktur, die der Benutzermodusanzeigetreiber mit einer Tabelle seiner Funktionen füllt. Ab Version 11.1 verwendet die Direct3D-Runtime diese Funktionen, um mit dem Anzeigetreiber im Benutzermodus zu kommunizieren.

Der Treiber sollte seine Direct3D- Version 11.1-Funktionen in der angegebenen D3D11_1DDI_DEVICEFUNCS-Struktur ausfüllen, wenn der Wert im Interface-ElementD3D11_1_DDI_INTERFACE_VERSION ist.

Wird ab Windows 8 unterstützt.

pWDDM1_3DeviceFuncs

[ein/aus] Ein Zeiger auf eine D3DWDDM1_3DDI_DEVICEFUNCS Struktur, die der Benutzermodusanzeigetreiber mit einer Tabelle seiner Funktionen füllt. Version 11.2 der Direct3D-Runtime verwendet diese Funktionen, um mit dem Benutzermodusanzeigetreiber zu kommunizieren.

Der Treiber sollte seine Direct3D- Version 11.2-Funktionen in der angegebenen D3DWDDM1_3DDI_DEVICEFUNCS-Struktur ausfüllen, wenn der Wert im Interface-MemberD3DWDDM1_3_DDI_INTERFACE_VERSION ist.

Wird ab Windows 8.1 unterstützt.

pWDDM2_0DeviceFuncs

[ein/aus] Ein Zeiger auf eine D3DWDDM2_0DDI_DEVICEFUNCS Struktur, die der Benutzermodusanzeigetreiber mit einer Tabelle seiner Funktionen füllt. Der Treiber sollte seine Direct3D-Funktionen in der angegebenen Struktur ausfüllen, wenn der Wert im Interface-MemberD3DWDDM2_0_DDI_INTERFACE_VERSION ist.

pWDDM2_1DeviceFuncs

[ein/aus] Ein Zeiger auf eine D3DWDDM2_1DDI_DEVICEFUNCS Struktur, die der Benutzermodusanzeigetreiber mit einer Tabelle seiner Funktionen füllt. Der Treiber sollte seine Direct3D-Funktionen in der angegebenen Struktur ausfüllen, wenn der Wert im Interface-MemberD3DWDDM2_0_DDI_INTERFACE_VERSION ist.

pWDDM2_2DeviceFuncs

[ein/aus] Ein Zeiger auf eine D3DWDDM2_2DDI_DEVICEFUNCS Struktur, die der Benutzermodusanzeigetreiber mit einer Tabelle seiner Funktionen füllt. Der Treiber sollte seine Direct3D-Funktionen in der angegebenen Struktur ausfüllen, wenn der Wert im Interface-MemberD3DWDDM2_0_DDI_INTERFACE_VERSION ist.

pWDDM2_6DeviceFuncs

[ein/aus] Ein Zeiger auf eine D3DWDDM2_6DDI_DEVICEFUNCS Struktur, die der Benutzermodusanzeigetreiber mit einer Tabelle seiner Funktionen füllt. Der Treiber sollte seine Direct3D-Funktionen in der angegebenen Struktur ausfüllen, wenn der Wert im Interface-MemberD3DWDDM2_0_DDI_INTERFACE_VERSION ist.

Unterstützt ab Windows 10, Version 1901.

hDrvDevice

[ein/aus] Ein Handle für das Anzeigegerät (Grafikkontext), das die Direct3D-Runtime in nachfolgenden Treiberaufrufen verwendet, um das Anzeigegerät zu identifizieren.

DXGIBaseDDI

[ein/aus] Eine DXGI_DDI_BASE_ARGS-Struktur , die Zugriff auf dxGI ermöglicht. Der DXGI DDI übernimmt Aufgaben auf niedriger Ebene, z. B. die Darstellung gerenderter Frames für eine Ausgabe, die Steuerung von Gamma und das Verwalten eines Vollbildübergangs.

hRTCoreLayer

[in] Ein Handle, das der Treiber verwenden sollte, wenn er in die Direct3D-Runtime zurückruft, um auf die Direct3D 10-Kernfunktionalität zuzugreifen (d. a. 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-Runtime-Rückruffunktionen enthält, die der Treiber für den Zugriff auf kernige Benutzermoduslaufzeitfunktionen verwenden kann.

p11UMCallbacks

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

Wird ab Windows 7 unterstützt.

pWDDM2_0UMCallbacks

[in] Zeiger auf eine D3DWDDM2_0DDI_CORELAYER_DEVICECALLBACKS-Struktur , die eine Tabelle mit Direct3D 10, Direct3D 11 und WDDM 2.0 Runtime-Rückruffunktionen enthält, die der Treiber für den Zugriff auf kernige Benutzermoduslaufzeitfunktionen verwenden kann.

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 Runtime-Rückruffunktionen enthält, die der Treiber für den Zugriff auf kerne Benutzermoduslaufzeitfunktionen verwenden kann.

pWDDM2_6UMCallbacks

[in] Zeiger auf eine D3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS Struktur, die eine Tabelle mit den Rückruffunktionen Direct3D 10, Direct3D 11, WDDM 2.0, WDDM 2.2 und WDDM 2.6 enthält, die der Treiber für den Zugriff auf die kernige Benutzermoduslaufzeitfunktion verwenden kann.

Flags

[in] Ein gültiges bitweises OR mit Flagwerten, die angeben, wie das Anzeigegerät erstellt werden soll. Die Direct3D-Runtime unterstützt die folgenden Flags:

Flag Bedeutung
D3D10DDI_CREATEDEVICE_FLAG_DISABLE_EXTRA_THREAD_CREATION (0x1) Wenn dieses Flag festgelegt ist, sollte der Benutzermodusanzeigetreiber nicht mehrere Threads gleichzeitig ausführen, wenn er Aufrufe seiner Funktionen aus der Direct3D-Runtime 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 Benutzermodusanzeigetreiber, dass die Anwendung single threaded ist. Die Direct3D 11-Runtime ermöglicht es mehreren Anwendungsthreads, in den Treiber zu gelangen, wenn der Treiber diesen Betriebsmodus zulässt. Allerdings können nicht alle Anwendungen mehrere Threads ausführen. Wenn dieses Flag festgelegt ist, erwartet der Treiber nicht, dass es von mehreren Threads gleichzeitig eingegeben und ausgeführt wird. Der Treiber kann die Synchronisierung vermeiden, wenn dieses Flag festgelegt ist. Wird ab Windows 7 unterstützt.
Das Flag, das in der 0xE Maske des Flags-Elements festgelegt ist Stellt die Ebene der 3D-Pipeline dar, die der Treiber für das Anzeigegerät unterstützen soll. Siehe Hinweise. Wird ab Windows 7 unterstützt.

ppfnRetrieveSubObject

[ein/aus] Ein Zeiger auf eine RetrieveSubObject(D3D11_1) -Funktion, die Unterteile eines Direct3D-Treibergeräteobjekts abruft.

Wird ab Windows 8 unterstützt.

Hinweise

Der Treiber untersucht werte in den Membern Interface und Version , um zu bestimmen, ob die D3D10DDI_DEVICEFUNCS, D3D10_1DDI_DEVICEFUNCS, D3D11DDI_DEVICEFUNCS, D3D11_1DDI_DEVICEFUNCS oder D3DWDDM1_3DDI_DEVICEFUNCS Struktur gefüllt werden soll, auf die die pDeviceFuncs, p10_1DeviceFuncs, p11DeviceFuncs, p11_1DeviceFuncs oder pWDDM1_3DeviceFuncs Member des Treibers verweist. Funktionen. Die folgenden Konstanten aus D3d10umddi.h sind Beispiele für die Konstanten, die der Treiber möglicherweise in Interface und Version findet:

#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 in der 0xE Maske des Flags-Members festgelegt ist, verwendet der Treiber die folgenden Konstanten und Makros, um einen der Werte aus der D3D11DDI_3DPIPELINELEVEL Enumeration zu extrahieren, die die zu unterstützende 3D-Pipelineebene darstellen. Der Wert im Flags-Element ist wie das Caps-Element 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
Unterstützte Mindestversion (Client) Windows Vista
Kopfzeile d3d10umddi.h (einschließlich D3d10umddi.h)

Weitere Informationen

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)