Partager via


structure D3DDDI_ALLOCATIONINFO (d3dukmdt.h)

La structure D3DDDI_ALLOCATIONINFO décrit une allocation pour WDDM v1. Les clients graphiques en mode utilisateur doivent utiliser D3DDDI_ALLOCATIONINFO2 à la place.

Syntaxe

typedef struct _D3DDDI_ALLOCATIONINFO {
  D3DKMT_HANDLE                  hAllocation;
  const VOID                     *pSystemMem;
  VOID                           *pPrivateDriverData;
  UINT                           PrivateDriverDataSize;
  D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
  union {
    struct {
      UINT Primary : 1;
      UINT Stereo : 1;
#if ...
      UINT Reserved : 30;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  } Flags;
} D3DDDI_ALLOCATIONINFO;

Membres

hAllocation

[out] Un D3DKMT_HANDLE qui représente un handle en mode noyau à l’allocation. Ce handle est associé au handle de ressource en mode noyau (si non NULL) que la fonction pfnAllocateCb du runtime Direct3D retourne dans la hKMResource membre de la structure D3DDDICB_ALLOCATE. Le pilote d’affichage en mode utilisateur peut utiliser ce handle d’allocation en mode noyau pour référencer l’allocation dans la mémoire tampon de commande.

pSystemMem

[in] Pointeur vers la mémoire système prélocalisée par le runtime Direct3D. Dans le cas contraire, ce membre a la valeur NULL si l’allocation doit utiliser la mémoire vidéo.

Si l’allocation est en mémoire système, le pilote d’affichage en mode utilisateur doit affecter la mémoire tampon dans le membre pSysMem de la structure D3DDDI_SURFACEINFO de la ressource à pSystemMem. Cette mémoire tampon est spécifiée lorsque le runtime Direct3D appelle les CreateResource du pilote d’affichage en mode utilisateur pour créer des ressources.

pPrivateDriverData

[in/out,opt] Pointeur vers la mémoire tampon qui contient des données privées facultatives qui peuvent être requises par le pilote miniport d’affichage pour créer l’allocation. Le pilote miniport d’affichage peut également retourner des données dans la mémoire tampon. Lorsque le contenu de la mémoire tampon est transmis au pilote miniport d’affichage, le contenu doit être dans un format que le pilote miniport d’affichage peut traiter.

PrivateDriverDataSize

[in] Taille en octets des données privées.

VidPnSourceId

[in] Numéro d’identification VidPN de base zéro de la vidéo présente source dans un chemin d’accès d’une topologie de réseau présent vidéo (VidPN) si l’allocation concerne la surface primaire. Le pilote doit définir VidPnSourceId uniquement pour les types d’allocation principaux et non pour tout autre type d’allocation. Si le pilote définit VidPnSourceId pour tout autre type d’allocation dans un appel à la fonction pfnAllocateCb, pfnAllocateCb retourne D3DDDI_ID_NOTAPPLICABLE.

Lorsque le sous-système du noyau graphique DirectX lance la création de l’allocation pour la surface primaire partagée, le pilote de miniport d’affichage peut déterminer le numéro d’identification du membre VidPnSourceId de la structure D3DKMDDI_SHAREDPRIMARYSURFACEDATA vers laquelle pointe pPrivateDriverData membre de la structure DXGK_ALLOCATIONINFO.

Flags

[in] Union qui contient une structure ou une valeur 32 bits qui identifie le type d’allocation.

Flags.Primary

[in] UINT qui spécifie si l’allocation fait partie du bureau. Une telle allocation est implicitement accessible au processeur. Une allocation principale peut être épinglée lors de la création ou non épinglée lors de la création.

La définition de ce membre équivaut à définir le premier bit du membre valeur de 32 bits (0x00000001).

Flags.Stereo

[in] Prise en charge à partir de Windows 8. UINT qui spécifie si l’allocation est une allocation principale stéréo. Le membre Stéréo ne peut être défini que lorsque le membre principal est défini.

La définition de ce membre équivaut à définir le deuxième bit du membre valeur 32 bits (0x00000002).

Flags.Reserved

[in] Ce membre est réservé et doit être défini sur zéro.

Flags.Value

[in] Valeur 32 bits qui identifie le type d’allocation.

Remarques

Lorsque le pilote d’affichage en mode utilisateur définit l’indicateur champ de bits dans l’indicateur membre de D3DDDI_ALLOCATIONINFO, certaines restrictions s’appliquent à la structure DXGK_ALLOCATIONINFO dans la pAllocationInfo membre de la structure DXGKARG_CREATEALLOCATION pour l’allocation dans un appel à la fonction DxgkDdiCreateAllocation du pilote de miniport d’affichage. Ces restrictions sont les suivantes :

  • L’allocation est allouée en fonction des préférences ; sinon, l’allocation par défaut pour le jeu de segments d’écriture pris en charge et tous les segments spécifiés dans le jeu de segments d’écriture doivent être accessibles au processeur.

  • Le pilote miniport d’affichage ne peut pas définir les indicateurs de champ binaire suivants dans les indicateurs de membre de DXGK_ALLOCATIONINFO:

  • PermanentSysMem

  • Cache

  • Protégé

  • ExistingSysMem

  • ExistingKernelSysMem

La constante D3DDDI_ID_NOTAPPLICABLE est définie dans D3dukmdt.h.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
d’en-tête d3dukmdt.h (include D3dumddi.h, D3dkmddi.h)

Voir aussi

createResource

D3DDDICB_ALLOCATE

D3DDDI_ALLOCATIONINFO2

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocation

pfnAllocateCb