struttura D3D10DDIARG_CREATEDEVICE (d3d10umddi.h)

La struttura D3D10DDIARG_CREATEDEVICE descrive il dispositivo di visualizzazione da creare.

Sintassi

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;

Members

hRTDevice

[in] Handle per il dispositivo di visualizzazione (contesto grafico) che specifica l'handle che il driver deve usare quando viene richiamato nel runtime Direct3D, ovvero quando il driver chiama le funzioni specificate dal membro pKTCallbacks .

Interface

[in] Versione dell'interfaccia Direct3D. I 16 bit alti archiviano il numero di versione principale (ad esempio 10, 11 e così via); i 16 bit bassi archiviano il numero di versione secondario (ad esempio 0, 1, 2 e così via). Il numero di versione secondario verrà aumentato quando viene rilasciata una modifica all'interfaccia.

Version

[in] Numero che il driver può usare per identificare quando è stato compilato il runtime Direct3D. I 16 bit alti rappresentano il numero di build; i 16 bit bassi rappresentano il numero di revisione.

Il driver è necessario solo per monitorare i 16 bit alti. Il driver deve assicurarsi che la versione della build di runtime passata sia maggiore o uguale alla versione di build corrente del driver. Il driver deve restituire un errore dalla relativa funzione CreateDevice(D3D10) se la versione di build passata non è compatibile.

pKTCallbacks

[in] Puntatore a una struttura D3DDDI_DEVICECALLBACKS che contiene una tabella di funzioni di callback di runtime Direct3D che il driver può usare per accedere ai servizi kernel.

pDeviceFuncs

[in/out] Puntatore a una struttura D3D10DDI_DEVICEFUNCS che il driver di visualizzazione in modalità utente riempie una tabella delle relative funzioni. Il runtime Direct3D usa queste funzioni per comunicare con il driver di visualizzazione in modalità utente.

Il driver deve riempire le funzioni Direct3D versione 10.0 nella struttura D3D10DDI_DEVICEFUNCS fornita quando il valore nel membro Interface è D3D10_0_DDI_INTERFACE_VERSION.

p10_1DeviceFuncs

[in/out] Puntatore a una struttura D3D10_1DDI_DEVICEFUNCS che il driver di visualizzazione in modalità utente riempie con una tabella delle relative funzioni. La versione 10.1 del runtime Direct3D usa queste funzioni per comunicare con il driver di visualizzazione in modalità utente.

Il driver deve riempire le funzioni Direct3D versione 10.1 nella struttura D3D10_1DDI_DEVICEFUNCS fornita quando il valore nel membro Interface è D3D10_1_DDI_INTERFACE_VERSION.

Supportato a partire da Windows Vista con SP1 e Windows Server 2008.

p11DeviceFuncs

[in/out] Puntatore a una struttura D3D11DDI_DEVICEFUNCS che il driver di visualizzazione in modalità utente riempie una tabella delle relative funzioni. La versione 11 del runtime Direct3D usa queste funzioni per comunicare con il driver di visualizzazione in modalità utente.

Il driver deve riempire le funzioni Direct3D versione 11.0 nella struttura D3D11DDI_DEVICEFUNCS fornita quando il valore nel membro Interface è D3D11_0_DDI_INTERFACE_VERSION.

Supportato a partire da Windows 7.

p11_1DeviceFuncs

[in/out] Puntatore a una struttura D3D11_1DDI_DEVICEFUNCS che il driver di visualizzazione in modalità utente riempie di una tabella delle relative funzioni. A partire dalla versione 11.1, il runtime Direct3D usa queste funzioni per comunicare con il driver di visualizzazione in modalità utente.

Il driver deve riempire le funzioni Direct3D versione 11.1 nella struttura D3D11_1DDI_DEVICEFUNCS fornita quando il valore nel membro Interface è D3D11_1_DDI_INTERFACE_VERSION.

Supportato a partire da Windows 8.

pWDDM1_3DeviceFuncs

[in/out] Puntatore a una struttura D3DWDDM1_3DDI_DEVICEFUNCS che il driver di visualizzazione in modalità utente riempie una tabella delle relative funzioni. La versione 11.2 del runtime Direct3D usa queste funzioni per comunicare con il driver di visualizzazione in modalità utente.

Il driver deve riempire le funzioni Direct3D versione 11.2 nella struttura D3DWDDM1_3DDI_DEVICEFUNCS fornita quando il valore nel membro Interface è D3DWDDM1_3_DDI_INTERFACE_VERSION.

Supportato a partire da Windows 8.1.

pWDDM2_0DeviceFuncs

[in/out] Puntatore a una struttura D3DWDDM2_0DDI_DEVICEFUNCS che il driver di visualizzazione in modalità utente riempie una tabella delle relative funzioni. Il driver deve riempire le funzioni Direct3D nella struttura fornita quando il valore nel membro Interface è D3DWDDM2_0_DDI_INTERFACE_VERSION.

pWDDM2_1DeviceFuncs

[in/out] Puntatore a una struttura D3DWDDM2_1DDI_DEVICEFUNCS che il driver di visualizzazione in modalità utente riempie una tabella delle relative funzioni. Il driver deve riempire le funzioni Direct3D nella struttura fornita quando il valore nel membro Interface è D3DWDDM2_0_DDI_INTERFACE_VERSION.

pWDDM2_2DeviceFuncs

[in/out] Puntatore a una struttura D3DWDDM2_2DDI_DEVICEFUNCS che il driver di visualizzazione in modalità utente riempie una tabella delle relative funzioni. Il driver deve riempire le funzioni Direct3D nella struttura fornita quando il valore nel membro Interface è D3DWDDM2_0_DDI_INTERFACE_VERSION.

pWDDM2_6DeviceFuncs

[in/out] Puntatore a una struttura D3DWDDM2_6DDI_DEVICEFUNCS che il driver di visualizzazione in modalità utente riempie una tabella delle relative funzioni. Il driver deve riempire le funzioni Direct3D nella struttura fornita quando il valore nel membro Interface è D3DWDDM2_0_DDI_INTERFACE_VERSION.

Supportato a partire da Windows 10, versione 1901.

hDrvDevice

[in/out] Handle per il dispositivo di visualizzazione (contesto grafico) usato dal runtime Direct3D nelle chiamate driver successive per identificare il dispositivo di visualizzazione.

DXGIBaseDDI

[in/out] Struttura DXGI_DDI_BASE_ARGS che fornisce l'accesso a DXGI. DXGI DDI gestisce attività di basso livello come la presentazione di fotogrammi sottoposti a rendering in un output, il controllo gamma e la gestione di una transizione a schermo intero.

hRTCoreLayer

[in] Handle che il driver deve usare quando chiama di nuovo nel runtime Direct3D per accedere alla funzionalità di base direct3D 10, ovvero quando il driver chiama le funzioni specificate dal membro pUMCallbacks .

pUMCallbacks

[in] Puntatore a una struttura di D3D10DDI_CORELAYER_DEVICECALLBACKS che contiene una tabella di funzioni di callback di runtime Direct3D 10 che il driver può usare per accedere alla funzionalità di runtime in modalità utente di base.

p11UMCallbacks

[in] Puntatore a una struttura di D3D11DDI_CORELAYER_DEVICECALLBACKS che contiene una tabella di funzioni di callback di runtime Direct3D 10 e Direct3D 11, che il driver può usare per accedere alla funzionalità di runtime in modalità utente principale.

Supportato a partire da Windows 7.

pWDDM2_0UMCallbacks

[in] Puntatore a una struttura di D3DWDDM2_0DDI_CORELAYER_DEVICECALLBACKS che contiene una tabella di funzioni di callback direct3D 10, Direct3D 11 e WDDM 2.0, che il driver può usare per accedere alle funzionalità di runtime in modalità utente di base.

pWDDM2_2UMCallbacks

[in] Puntatore a una struttura di D3DWDDM2_2DDI_CORELAYER_DEVICECALLBACKS che contiene una tabella di funzioni di callback di runtime Direct3D 10, Direct3D 11, WDDM 2.0 e WDDM 2.2, che il driver può usare per accedere alla funzionalità di runtime in modalità utente di base.

pWDDM2_6UMCallbacks

[in] Puntatore a una struttura D3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS che contiene una tabella di funzioni di callback di runtime Direct3D 10, Direct3D 11, WDDM 2.0, WDDM 2.2 e WDDM 2.6, che il driver può usare per accedere alla funzionalità di runtime in modalità utente di base.

Flags

[in] OR bit per bit valido dei valori di flag che identificano come creare il dispositivo di visualizzazione. Il runtime Direct3D supporta i flag seguenti:

Contrassegno Significato
D3D10DDI_CREATEDEVICE_FLAG_DISABLE_EXTRA_THREAD_CREATION (0x1) Se questo flag è impostato, il driver di visualizzazione in modalità utente non deve eseguire più thread contemporaneamente quando elabora le chiamate alle relative funzioni dal runtime Direct3D. Un driver può in genere avviare ed eseguire più thread per elaborare le operazioni più velocemente, a meno che non sia impostato il flag di D3D10DDI_CREATEDEVICE_FLAG_DISABLE_EXTRA_THREAD_CREATION .
D3D11DDI_CREATEDEVICE_FLAG_SINGLETHREADED (0x10) Informa il driver di visualizzazione in modalità utente che l'applicazione è a thread singolo. Il runtime Direct3D 11 consente a più thread dell'applicazione di immettere il driver se il driver consente questa modalità di funzionamento. Tuttavia, non tutte le applicazioni possono eseguire più thread. Se questo flag è impostato, il driver non prevede che più thread lo immettano ed eseguano contemporaneamente. Il driver può evitare la sincronizzazione se questo flag è impostato. Supportato a partire da Windows 7.
Flag impostato nella maschera di 0xE del membro Flags Rappresenta il livello di pipeline 3D che il driver deve supportare per il dispositivo di visualizzazione. Vedere la sezione Osservazioni. Supportato a partire da Windows 7.

ppfnRetrieveSubObject

[in/out] Puntatore a una funzione RetrieveSubObject(D3D11_1) che recupera i sottoparti di un oggetto dispositivo driver Direct3D.

Supportato a partire da Windows 8.

Commenti

Il driver esamina i valori nei membri Interface e Version per determinare se riempire il D3D10DDI_DEVICEFUNCS, D3D10_1DDI_DEVICEFUNCS, D3D11DDI_DEVICEFUNCS, D3D11_1DDI_DEVICEFUNCS o D3DWDDM1_3DDI_DEVICEFUNCS struttura a cui pDeviceFuncs, p10_1DeviceFuncs, p11DeviceFuncs, p11_1DeviceFuncs o pWDDM1_3DeviceFuncs membro punta con il driver Funzioni. Le costanti seguenti di D3d10umddi.h sono esempi delle costanti che il driver potrebbe trovare in Interface e Version:

#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))

Altre possibili combinazioni di costanti per versioni diverse del sistema operativo, Direct3D e Windows Display Driver Model (WDDM) sono elencate nell'intestazione D3d10umddi.h .

Per il flag impostato nella maschera di 0xE del membro Flags , il driver usa la costante e le macro seguenti per estrarre uno dei valori dall'enumerazione D3D11DDI_3DPIPELINELEVEL che rappresenta il livello della pipeline 3D da supportare. Il valore nel membro Flags è formattato come il membro Caps della struttura D3D11DDI_3DPIPELINESUPPORT_CAPS .

#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))

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Intestazione d3d10umddi.h (include D3d10umddi.h)

Vedi anche

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)