Partager via


structure D3DDDI_ALLOCATIONINFO2 (d3dukmdt.h)

La structure D3DDDI_ALLOCATIONINFO2 décrit une allocation.

Syntaxe

typedef struct _D3DDDI_ALLOCATIONINFO2 {
  D3DKMT_HANDLE                         hAllocation;
  union {
    HANDLE     hSection;
    const VOID *pSystemMem;
  } D3DKMT_ALIGN64;
  VOID                                  *pPrivateDriverData;
  UINT                                  PrivateDriverDataSize;
  D3DDDI_VIDEO_PRESENT_SOURCE_ID        VidPnSourceId;
  union {
    struct {
      UINT Primary : 1;
      UINT Stereo : 1;
      UINT OverridePriority : 1;
#if ...
      UINT Reserved : 29;
#elif
      UINT Reserved : 30;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  } Flags;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS GpuVirtualAddress;
  union {
    UINT                     Priority;
    D3DKMT_ALIGN64 ULONG_PTR Unused;
  };
#if ...
  D3DKMT_ALIGN64 ULONG_PTR              Reserved[5];
#else
  D3DKMT_ALIGN64 ULONG_PTR              Reserved[6];
#endif
} D3DDDI_ALLOCATIONINFO2;

Membres

hAllocation

[out] Handle 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.

D3DKMT_ALIGN64

Union avec hSection et pSystemMem.

D3DKMT_ALIGN64.hSection

[in] Handle vers un objet de section valide. Utilisez hSection lorsque D3DKMT_CREATEALLOCATIONFLAGS ::ExistingSection est défini.

D3DKMT_ALIGN64.pSystemMem

[in] Pointeur vers la mémoire système pré-allouée. Utilisez pSystemMem quand D3DKMT_CREATEALLOCATIONFLAGS ::ExistingSection n’est pas défini.

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 (WDDM 1.2). 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.OverridePriority

[in] Prise en charge à partir de Windows 10 version 1703 (WDDM 2.2). Remplacez la priorité, telle qu’établie par le pilote graphique en mode utilisateur.

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.

GpuVirtualAddress

[out] Adresse virtuelle GPU de l’allocation créée.

Priority

[in] Priorité de l’allocation.

Unused

Inutilisé.

Reserved[5]

Reserved[6]

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 7
d’en-tête d3dukmdt.h

Voir aussi

createResource

D3DDDICB_ALLOCATE

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocation

pfnAllocateCb