structure DXGK_ALLOCATIONINFO (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 concernent 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 primaire partagée ou une autre surface verrouillable, les données sont transmises 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 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 le pas, qui est spécifié par l’indicateur de champ bit PitchAlignment dans le membre Indicateurs de la structure DXGK_SEGMENTDESCRIPTOR pour le segment. Si l’allocation n’est pas prise en charge dans un segment aligné sur le pas (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 du membre Size .

HintedBank

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

PreferredSegment

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

SupportedReadSegmentSet

[out] Identificateurs de segment que le pilote 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 la page de 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 miniport d’affichage ne peut définir les préférences que pour les segments pris en charge pour les opérations de lecture. Le gestionnaire de mémoire vidéo affirme 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 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 miniport d’affichage demande que le gestionnaire de mémoire vidéo utilise pour la page de 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 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 affirme 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, et ainsi de suite.

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 vers la mémoire système verrouillée paginé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 démarré avec Windows 10 et WDDM v2.

PhysicalAdapterIndex

[out] Index de l’adaptateur physique.

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

hAllocation

[out] Handle de l’allocation. Le pilote 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 miniport d’affichage spécifie ces indicateurs pour le gestionnaire de mémoire vidéo. Les pilotes qui ciblent une version WDDM antérieure à WDDM 2.0 doivent utiliser des indicateurs ; les pilotes qui ciblent n’importe quelle 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 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 une version WDDM antérieure à WDDM 2.0 doivent utiliser des indicateurs.

pAllocationUsageHint

[out] Pointeur vers une structure DXGK_ALLOCATIONUSAGEHINT utilisée par le gestionnaire de mémoire 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é des allocations n’est pas un problème pour le pilote, le pilote 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).

Notes

Avec WDDM v2, la structure DXGK_ALLOCATIONINFO a été modifiée afin 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 à son objectif 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 seul ensemble de segments.

Spécifications

   
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