D3D10DDIARG_CREATEDEVICE structure (d3d10umddi.h)

La structure D3D10DDIARG_CREATEDEVICE décrit le périphérique d’affichage à créer.

Syntaxe

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;

Membres

hRTDevice

[in] Handle du périphérique d’affichage (contexte graphique) qui spécifie le handle que le pilote doit utiliser lorsqu’il rappelle le runtime Direct3D (autrement dit, lorsque le pilote appelle des fonctions spécifiées par le membre pKTCallbacks ).

Interface

[in] Version de l’interface Direct3D. Les 16 bits élevés stockent le numéro de version principale (par exemple, 10, 11, etc.) ; les 16 bits inférieurs stockent le numéro de version mineure (par exemple, 0, 1, 2, etc.). Le numéro de version mineure est augmenté lorsqu’une modification apportée à l’interface est publiée.

Version

[in] Nombre que le pilote peut utiliser pour identifier le moment où le runtime Direct3D a été généré. Les 16 bits élevés représentent le numéro de build ; les 16 bits inférieurs représentent le numéro de révision.

Le pilote est nécessaire uniquement pour surveiller les 16 bits élevés. Le pilote doit s’assurer que la version de build du runtime qui est passée est supérieure ou égale à la version de build actuelle du pilote. Le pilote doit retourner un échec à partir de sa fonction CreateDevice(D3D10) si la version de build passée n’est pas compatible.

pKTCallbacks

[in] Pointeur vers une structure de D3DDDI_DEVICECALLBACKS qui contient une table des fonctions de rappel du runtime Direct3D que le pilote peut utiliser pour accéder aux services du noyau.

pDeviceFuncs

[entrée/sortie] Pointeur vers une structure de D3D10DDI_DEVICEFUNCS que le pilote d’affichage en mode utilisateur remplit avec un tableau de ses fonctions. Le runtime Direct3D utilise ces fonctions pour communiquer avec le pilote d’affichage en mode utilisateur.

Le pilote doit remplir ses fonctions Direct3D version 10.0 dans la structure de D3D10DDI_DEVICEFUNCS fournie lorsque la valeur dans le membre Interface est D3D10_0_DDI_INTERFACE_VERSION.

p10_1DeviceFuncs

[entrée/sortie] Pointeur vers une structure D3D10_1DDI_DEVICEFUNCS que le pilote d’affichage en mode utilisateur remplit avec un tableau de ses fonctions. La version 10.1 du runtime Direct3D utilise ces fonctions pour communiquer avec le pilote d’affichage en mode utilisateur.

Le pilote doit remplir ses fonctions Direct3D version 10.1 dans la structure de D3D10_1DDI_DEVICEFUNCS fournie lorsque la valeur dans le membre Interface est D3D10_1_DDI_INTERFACE_VERSION.

Pris en charge à partir de Windows Vista avec SP1 et Windows Server 2008.

p11DeviceFuncs

[entrée/sortie] Pointeur vers une structure D3D11DDI_DEVICEFUNCS que le pilote d’affichage en mode utilisateur remplit avec un tableau de ses fonctions. La version 11 du runtime Direct3D utilise ces fonctions pour communiquer avec le pilote d’affichage en mode utilisateur.

Le pilote doit remplir ses fonctions Direct3D version 11.0 dans la structure de D3D11DDI_DEVICEFUNCS fournie lorsque la valeur dans le membre Interface est D3D11_0_DDI_INTERFACE_VERSION.

Pris en charge à partir de Windows 7.

p11_1DeviceFuncs

[entrée/sortie] Pointeur vers une structure de D3D11_1DDI_DEVICEFUNCS que le pilote d’affichage en mode utilisateur remplit avec un tableau de ses fonctions. À compter de la version 11.1, le runtime Direct3D utilise ces fonctions pour communiquer avec le pilote d’affichage en mode utilisateur.

Le pilote doit remplir ses fonctions Direct3D version 11.1 dans la structure de D3D11_1DDI_DEVICEFUNCS fournie lorsque la valeur dans le membre Interface est D3D11_1_DDI_INTERFACE_VERSION.

Pris en charge à partir de Windows 8.

pWDDM1_3DeviceFuncs

[entrée/sortie] Pointeur vers une structure D3DWDDM1_3DDI_DEVICEFUNCS que le pilote d’affichage en mode utilisateur remplit avec un tableau de ses fonctions. La version 11.2 du runtime Direct3D utilise ces fonctions pour communiquer avec le pilote d’affichage en mode utilisateur.

Le pilote doit remplir ses fonctions Direct3D version 11.2 dans la structure de D3DWDDM1_3DDI_DEVICEFUNCS fournie lorsque la valeur dans le membre Interface est D3DWDDM1_3_DDI_INTERFACE_VERSION.

Pris en charge à partir de Windows 8.1.

pWDDM2_0DeviceFuncs

[entrée/sortie] Pointeur vers une structure D3DWDDM2_0DDI_DEVICEFUNCS que le pilote d’affichage en mode utilisateur remplit avec un tableau de ses fonctions. Le pilote doit remplir ses fonctions Direct3D dans la structure fournie lorsque la valeur dans le membre Interface est D3DWDDM2_0_DDI_INTERFACE_VERSION.

pWDDM2_1DeviceFuncs

[entrée/sortie] Pointeur vers une structure D3DWDDM2_1DDI_DEVICEFUNCS que le pilote d’affichage en mode utilisateur remplit avec une table de ses fonctions. Le pilote doit remplir ses fonctions Direct3D dans la structure fournie lorsque la valeur dans le membre Interface est D3DWDDM2_0_DDI_INTERFACE_VERSION.

pWDDM2_2DeviceFuncs

[entrée/sortie] Pointeur vers une structure D3DWDDM2_2DDI_DEVICEFUNCS que le pilote d’affichage en mode utilisateur remplit avec un tableau de ses fonctions. Le pilote doit remplir ses fonctions Direct3D dans la structure fournie lorsque la valeur dans le membre Interface est D3DWDDM2_0_DDI_INTERFACE_VERSION.

pWDDM2_6DeviceFuncs

[entrée/sortie] Pointeur vers une structure D3DWDDM2_6DDI_DEVICEFUNCS que le pilote d’affichage en mode utilisateur remplit avec un tableau de ses fonctions. Le pilote doit remplir ses fonctions Direct3D dans la structure fournie lorsque la valeur dans le membre Interface est D3DWDDM2_0_DDI_INTERFACE_VERSION.

Pris en charge à partir de Windows 10, version 1901.

hDrvDevice

[entrée/sortie] Handle du périphérique d’affichage (contexte graphique) que le runtime Direct3D utilise dans les appels de pilotes suivants pour identifier le périphérique d’affichage.

DXGIBaseDDI

[entrée/sortie] Structure DXGI_DDI_BASE_ARGS qui fournit l’accès à DXGI. DDI DXGI gère des tâches de bas niveau, telles que la présentation d’images rendues à une sortie, le contrôle gamma et la gestion d’une transition plein écran.

hRTCoreLayer

[in] Handle que le pilote doit utiliser lorsqu’il rappelle le runtime Direct3D pour accéder à la fonctionnalité principale de Direct3D 10 (autrement dit, lorsque le pilote appelle des fonctions spécifiées par le membre pUMCallbacks ).

pUMCallbacks

[in] Pointeur vers une structure de D3D10DDI_CORELAYER_DEVICECALLBACKS qui contient une table des fonctions de rappel du runtime Direct3D 10 que le pilote peut utiliser pour accéder aux fonctionnalités principales du runtime en mode utilisateur.

p11UMCallbacks

[in] Pointeur vers une structure D3D11DDI_CORELAYER_DEVICECALLBACKS qui contient une table des fonctions de rappel du runtime Direct3D 10 et Direct3D 11, que le pilote peut utiliser pour accéder aux principales fonctionnalités d’exécution en mode utilisateur.

Pris en charge à partir de Windows 7.

pWDDM2_0UMCallbacks

[in] Pointeur vers une structure de D3DWDDM2_0DDI_CORELAYER_DEVICECALLBACKS qui contient une table des fonctions de rappel du runtime Direct3D 10, Direct3D 11 et WDDM 2.0, que le pilote peut utiliser pour accéder aux fonctionnalités principales du runtime en mode utilisateur.

pWDDM2_2UMCallbacks

[in] Pointeur vers une structure de D3DWDDM2_2DDI_CORELAYER_DEVICECALLBACKS qui contient une table des fonctions de rappel du runtime Direct3D 10, Direct3D 11, WDDM 2.0 et WDDM 2.2, que le pilote peut utiliser pour accéder aux fonctionnalités principales du runtime en mode utilisateur.

pWDDM2_6UMCallbacks

[in] Pointeur vers une structure de D3DWDDM2_6DDI_CORELAYER_DEVICECALLBACKS qui contient une table des fonctions de rappel du runtime direct3D 10, Direct3D 11, WDDM 2.0, WDDM 2.2 et WDDM 2.6, que le pilote peut utiliser pour accéder aux fonctionnalités principales du runtime en mode utilisateur.

Flags

[in] OR au niveau du bit valide de valeurs d’indicateur qui identifient comment créer l’appareil d’affichage. Le runtime Direct3D prend en charge les indicateurs suivants :

Indicateur Signification
D3D10DDI_CREATEDEVICE_FLAG_DISABLE_EXTRA_THREAD_CREATION (0x1) Si cet indicateur est défini, le pilote d’affichage en mode utilisateur ne doit pas exécuter plusieurs threads simultanément lorsqu’il traite les appels à ses fonctions à partir du runtime Direct3D. Un pilote peut généralement démarrer et exécuter plusieurs threads pour traiter les opérations plus rapidement, sauf si l’indicateur D3D10DDI_CREATEDEVICE_FLAG_DISABLE_EXTRA_THREAD_CREATION est défini.
D3D11DDI_CREATEDEVICE_FLAG_SINGLETHREADED (0x10) Informe le pilote d’affichage en mode utilisateur que l’application est à thread unique. Le runtime Direct3D 11 permet à plusieurs threads d’application d’entrer dans le pilote si le pilote autorise ce mode de fonctionnement. Toutefois, toutes les applications ne peuvent pas exécuter plusieurs threads. Si cet indicateur est défini, le pilote ne s’attend pas à ce que plusieurs threads l’entrent et s’exécutent simultanément. Le pilote peut éviter la synchronisation si cet indicateur est défini. Pris en charge à partir de Windows 7.
Indicateur défini dans le masque 0xE du membre Flags Représente le niveau de pipeline 3D que le pilote doit prendre en charge pour le périphérique d’affichage. Consultez la section Notes. Pris en charge à partir de Windows 7.

ppfnRetrieveSubObject

[entrée/sortie] Pointeur vers une fonction RetrieveSubObject(D3D11_1) qui récupère les sous-parties d’un objet de périphérique de pilote Direct3D.

Pris en charge à partir de Windows 8.

Remarques

Le pilote examine les valeurs des membres Interface et Version pour déterminer s’il faut remplir la structure D3D10DDI_DEVICEFUNCS, D3D10_1DDI_DEVICEFUNCS, D3D11DDI_DEVICEFUNCS, D3D11_1DDI_DEVICEFUNCS ou D3DWDDM1_3DDI_DEVICEFUNCS que le membre pDeviceFuncs, p10_1DeviceFuncs, p11DeviceFuncs, p11_1DeviceFuncs ou pWDDM1_3DeviceFuncs pointe avec le membre du pilote Fonctions. Les constantes suivantes de D3d10umddi.h sont des exemples de constantes que le pilote peut trouver dans Interface et 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))

D’autres combinaisons possibles de constantes pour différentes versions du système d’exploitation, Direct3D et Windows Display Driver Model (WDDM) sont répertoriées dans l’en-tête D3d10umddi.h .

Pour l’indicateur défini dans le masque 0xE du membre Flags, le pilote utilise la constante et les macros suivantes pour extraire l’une des valeurs de l’énumération D3D11DDI_3DPIPELINELEVEL qui représentent le niveau de pipeline 3D à prendre en charge. La valeur dans le membre Flags est mise en forme comme le membre Caps de la structure 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))

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
En-tête d3d10umddi.h (incluez D3d10umddi.h)

Voir aussi

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)