D3DDDI_ALLOCATIONINFO2 structure (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                                  D3DKMT_PTR(
    VOID               *unnamedParam1,
    pPrivateDriverData unnamedParam2
  );
  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 pour l’allocation. Ce handle est associé au handle de ressource en mode noyau (s’il n’est pas NULL) que la fonction pfnAllocateCb du runtime Direct3D retourne dans le membre hKMResource 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 commandes.

D3DKMT_ALIGN64

Union avec hSection et pSystemMem.

D3DKMT_ALIGN64.hSection

[in] Handle vers un objet de section valide. Utilisez hSection quand 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.

void D3DKMT_PTR( VOID *unnamedParam1, pPrivateDriverData unnamedParam2)

PrivateDriverDataSize

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

VidPnSourceId

[in] Numéro d’identification VidPN de base zéro de la source de la vidéo présente dans un chemin d’accès d’une topologie de réseau présent vidéo (VidPN) si l’allocation est destinée à 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 à partir du membre VidPnSourceId de la structure D3DKMDDI_SHAREDPRIMARYSURFACEDATA vers laquelle pointe le membre pPrivateDriverData 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 au moment de la création ou non épinglée au moment de la création.

Définir ce membre revient à définir le premier bit du membre Value 32 bits (0x00000001).

Flags.Stereo

[in] Pris 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.

Définir ce membre revient à définir le deuxième bit du membre Value 32 bits (0x00000002).

Flags.OverridePriority

[in] Pris en charge à partir de Windows 10 version 1703 (WDDM 2.2). Priorité de remplacement, 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 de champ binaire principal dans le membre Indicateurs de D3DDDI_ALLOCATIONINFO, certaines restrictions s’appliquent à la structure DXGK_ALLOCATIONINFO dans le membre pAllocationInfo de la structure DXGKARG_CREATEALLOCATION pour l’allocation dans un appel à la fonction DxgkDdiCreateAllocation du pilote miniport d’affichage. Ces restrictions sont les suivantes :

  • L’allocation est allouée en fonction des préférences ; sinon, l’allocation est définie par défaut sur 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 par le processeur.

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

  • PermanentSysMem

  • Mis en cache

  • Protected

  • ExistingSysMem

  • ExistingKernelSysMem

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7
En-tête d3dukmdt.h

Voir aussi

CreateResource

D3DDDICB_ALLOCATE

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocation

pfnAllocateCb