DXGK_ALLOCATIONINFO structure (d3dkmddi.h)

La structure DXGK_ALLOCATIONINFO décrit les paramètres de création d’une allocation.

Syntaxe

typedef struct _DXGK_ALLOCATIONINFO {
  VOID                       *pPrivateDriverData;
  UINT                       PrivateDriverDataSize;
  UINT                       Alignment;
  SIZE_T                     Size;
  SIZE_T                     PitchAlignedSize;
  DXGK_SEGMENTBANKPREFERENCE HintedBank;
  DXGK_SEGMENTPREFERENCE     PreferredSegment;
  UINT                       SupportedReadSegmentSet;
  UINT                       SupportedWriteSegmentSet;
  UINT                       EvictionSegmentSet;
  union {
    UINT MaximumRenamingListLength;
    UINT PhysicalAdapterIndex;
  };
  HANDLE                     hAllocation;
  union {
    DXGK_ALLOCATIONINFOFLAGS         Flags;
    DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 FlagsWddm2;
  };
  DXGK_ALLOCATIONUSAGEHINT   *pAllocationUsageHint;
  UINT                       AllocationPriority;
  DXGK_ALLOCATIONINFOFLAGS2  Flags2;
} DXGK_ALLOCATIONINFO;

Membres

pPrivateDriverData

[in] Pointeur vers un bloc de données privées. Ces données sont destinées à chaque allocation et sont distinctes du membre pPrivateDriverData dans la structure DXGKARG_CREATEALLOCATION . Le pilote d’affichage en mode utilisateur peut transmettre ces données au pilote miniport d’affichage. Toutefois, si le sous-système du noyau graphique Microsoft DirectX transmet ces données pour décrire la surface principale partagée ou une autre surface verrouillable, les données sont passées en tant que premier élément du tableau dans le membre pAllocationInfo de DXGKARG_CREATEALLOCATION.

PrivateDriverDataSize

[in] Taille, en octets, du bloc de données privées dans pPrivateDriverData.

Alignment

[out] Alignement requis, en octets, pour l’allocation.

Size

[out] Taille, en octets, requise pour l’allocation. La valeur de taille est étendue à un multiple de la taille de page hôte native (par exemple, 4 Ko sur l’architecture x86). Le pilote de miniport d’affichage spécifie la taille d’allocation au gestionnaire de mémoire vidéo.

PitchAlignedSize

[out] Taille, en octets, de l’allocation lorsqu’elle se trouve dans un segment aligné sur la hauteur, qui est spécifiée par l’indicateur de champ de bits PitchAlignment dans le membre Flags de la structure DXGK_SEGMENTDESCRIPTOR pour le segment. Si l’allocation n’est pas prise en charge dans un segment aligné en hauteur (les unités de traitement graphique [GPU] ne prennent généralement pas en charge ce type de segment), le pilote doit définir la valeur dans PitchAlignedSize sur zéro. Si le pilote spécifie une valeur différente de zéro dans PitchAlignedSize, la valeur doit être supérieure ou égale à la valeur dans le membre Size .

HintedBank

[out] Une structure DXGK_SEGMENTBANKPREFERENCE qui indique les préférences de classement bancaire que le pilote de miniport d’affichage demande que le gestionnaire de mémoire vidéo utilise pour paginer l’allocation. Si ce membre est spécifié, le gestionnaire de mémoire vidéo utilise des informations bancaires sur le segment préféré, qui est spécifié par le membre SegmentId0 de la structure DXGK_SEGMENTPREFERENCE que le membre PreferredSegment spécifie.

PreferredSegment

[out] Une structure DXGK_SEGMENTPREFERENCE qui indique les identificateurs de segments préférés que le pilote de miniport d’affichage demande que le gestionnaire de mémoire vidéo utilise pour paginer l’allocation.

SupportedReadSegmentSet

[out] Identificateurs de segment que le pilote de miniport d’affichage peut définir dans le membre PreferredSegment pour les opérations de lecture. Les segments que ces identificateurs indiquent sont des segments que le pilote de miniport d’affichage demande que le gestionnaire de mémoire vidéo utilise pour paginer l’allocation pour les opérations de lecture, quelles que soient les performances. La définition du bit 0 indique que le premier segment est pris en charge, la définition du bit 1 indique que le deuxième segment est pris en charge, et ainsi de suite.

Le pilote de miniport d’affichage peut définir des préférences uniquement pour les segments pris en charge pour les opérations de lecture. Le gestionnaire de mémoire vidéo indique si le pilote tente de définir des préférences pour les segments non pris en charge dans le membre PreferredSegment .

SupportedWriteSegmentSet

[out] Identificateurs de segment que le pilote de miniport d’affichage peut définir dans le membre PreferredSegment pour les opérations d’écriture. Les segments que ces identificateurs indiquent sont des segments que le pilote de miniport d’affichage demande que le gestionnaire de mémoire vidéo utilise pour paginer l’allocation pour les opérations d’écriture, quelles que soient les performances. La définition du bit 0 indique que le premier segment est pris en charge, la définition du bit 1 indique que le deuxième segment est pris en charge, et ainsi de suite.

Le pilote de miniport d’affichage peut définir des préférences uniquement pour les segments pris en charge pour les opérations d’écriture. Le gestionnaire de mémoire vidéo indique si le pilote tente de définir des préférences pour les segments non pris en charge dans le membre PreferredSegment .

EvictionSegmentSet

[out] Identificateurs de segments qui peuvent être utilisés pour l’éviction. La définition du bit 0 indique que le premier segment peut être utilisé pour l’éviction, la définition du bit 1 indique que le deuxième segment peut être utilisé pour l’éviction, etc.

Seuls les segments d’ouverture peuvent être spécifiés par ce membre. Si le pilote spécifie des segments valides à utiliser pour l’éviction, le gestionnaire de mémoire vidéo tente d’allouer des ressources dans ces segments d’ouverture pour accélérer le processus d’éviction. Si le pilote spécifie 0, le gestionnaire de mémoire vidéo appelle le pilote pour transférer le contenu d’une allocation directement à la mémoire système verrouillée sans mapper les pages sous-jacentes via un segment d’ouverture.

MaximumRenamingListLength

[out] Longueur maximale de la liste de renommage pour l’allocation. Pour plus d’informations sur la liste de renommage, consultez Demande de renommer une allocation.

La prise en charge de ce membre a commencé avec Windows 10 et WDDM v2.

PhysicalAdapterIndex

[out] Index de l’adaptateur physique.

La prise en charge de ce membre a commencé avec Windows 10 et WDDM v2.

hAllocation

[out] Handle de l’allocation. Le pilote de miniport d’affichage doit définir ce membre sur une valeur qu’il peut utiliser pour faire référence à sa structure de suivi privé pour l’allocation.

Flags

[out] Structure DXGK_ALLOCATIONINFOFLAGS qui identifie les propriétés d’une allocation dans les indicateurs de champ binaire. Ces propriétés indiquent le type d’allocation à créer. Le pilote de miniport d’affichage spécifie ces indicateurs pour le gestionnaire de mémoire vidéo. Les pilotes qui ciblent une version de WDDM antérieure à WDDM 2.0 doivent utiliser des indicateurs ; les pilotes qui ciblent une version >WDDM = WDDM 2.0 doivent utiliser FlagsWddm2.

FlagsWddm2

[out] Structure DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 qui identifie les propriétés d’une allocation dans les indicateurs de champ binaire. Ces propriétés indiquent le type d’allocation à créer. Le pilote de miniport d’affichage spécifie ces indicateurs pour le gestionnaire de mémoire vidéo. Les pilotes qui ciblent une version >WDDM = WDDM 2.0 doivent utiliser FlagsWddm2 ; les pilotes qui ciblent toute version de WDDM antérieure à WDDM 2.0 doivent utiliser des indicateurs.

pAllocationUsageHint

[out] Pointeur vers une structure DXGK_ALLOCATIONUSAGEHINT que le gestionnaire de mémoire utilise pour déterminer comment utiliser l’allocation.

AllocationPriority

[out] Valeur UINT qui spécifie le niveau de priorité de départ de l’allocation.

Le pilote détermine le niveau de priorité approprié pour chaque allocation. Pour plus d’informations sur les niveaux de priorité, consultez la section Notes de la fonction pfnSetPriorityCb . Si le niveau de priorité pour les allocations n’est pas un problème pour le pilote, celui-ci doit définir tous les niveaux de priorité sur D3DDDI_ALLOCATIONPRIORITY_NORMAL. Notez que 0 est une priorité d’allocation initiale non valide.

Flags2

[out] Structure DXGK_ALLOCATIONINFOFLAGS2 qui contient des propriétés supplémentaires pour une allocation. Prise en charge à partir de Windows 11 (WDDM 3.0).

Remarques

Avec WDDM v2, la structure DXGK_ALLOCATIONINFO a été modifiée de sorte que le jeu de segments de lecture et d’écriture ne soit plus différencié. Lors de la création de la surface, le gestionnaire de mémoire vidéo ignore la valeur SupportedReadSegmentSet et utilise uniquement le jeu de segments fourni par SupportedWriteSegmentSet. Les pilotes doivent s’assurer que cette valeur représente avec précision le jeu de segments qui peut être utilisé par l’allocation dans le but prévu.

Ignorer le jeu de segments de lecture pris en charge ne signifie pas qu’il n’est plus pris en charge, mais simplement qu’il ne doit plus y avoir de différence entre ces jeux et que le gestionnaire de mémoire vidéo sera autorisé à choisir un segment approprié pour toute allocation à partir d’un jeu de segments unique.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
En-tête d3dkmddi.h (include D3dkmddi.h)

Voir aussi

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFOFLAGS

DXGK_ALLOCATIONLIST

DXGK_ALLOCATIONUSAGEHINT

DXGK_SEGMENTBANKPREFERENCE

DXGK_SEGMENTDESCRIPTOR

DXGK_SEGMENTPREFERENCE

DxgkDdiCreateAllocation

DxgkDdiRender

pfnAllocateCb