Partager via


structure DXGKARGCB_ALLOCATE_ADL (d3dkmddi.h)

DXGKARGCB_ALLOCATE_ADL contient les informations utilisées par la fonction de rappel DXGKCB_ALLOCATEADL pour créer une liste de descripteurs d’adresses (ADL).

Syntaxe

typedef struct _DXGKARGCB_ALLOCATE_ADL {
  [in]  HANDLE   hAdapterMemoryObject;
  [in]  SIZE_T   Offset;
  [in]  SIZE_T   Size;
  union {
    struct {
      UINT32 RequireContiguous : 1;
      UINT32 PreferContiguous : 1;
      UINT32 Reserved : 30;
    };
          UINT32 Value;
  } Flags;
  [out] DXGK_ADL *pAdl;
} DXGKARGCB_ALLOCATE_ADL;

Membres

[in] hAdapterMemoryObject

Objet de mémoire de l’adaptateur qui décrit la mémoire logique sous-jacente utilisée pour générer l’ADL. Cet objet a été créé via DXGKCB_CREATEPHYSICALMEMORYOBJECT ou ultérieurement ouvert via DXGKCB_OPENPHYSICALMEMORYOBJECT.

[in] Offset

Décalage, en octets, à partir du début de l’objet de mémoire physique. Cette valeur doit être un multiple de PAGE_SIZE.

[in] Size

Nombre total d’octets à allouer pour l’ADL. Cette valeur doit être un multiple de PAGE_SIZE, de telle sorte que le nombre de pages dans l’ADL soit Size/PAGE_SIZE.

Flags

[in] Flags.RequireContiguous

Indique que le pilote demande un ADL qui décrit une plage contiguë de mémoire, au lieu de pages éparses. Cet indicateur n’est valide que si l’objet de mémoire physique représenté par hAdapterMemoryObject a été alloué en tant que DXGK_PHYSICAL_MEMORY_TYPE_CONTIGUOUS_MEMORY ou DXGK_PHYSICAL_MEMORY_TYPE_IO_SPACE.

[in] Flags.PreferContiguous

Fournit au pilote un moyen de demander de manière optimale un ADL contigu lorsque cela est possible. Lorsque le réadressage DMA est activé, les listes ADL font référence à des plages d’espace d’adressage logique ; Toutefois, les pilotes peuvent ne pas être en mesure d’utiliser des listes ADL contiguës dans tous les chemins de code. Les ADL non contiguës pour la mémoire logique peuvent devenir coûteuses, car elles nécessitent l’allocation d’un tableau PFN distinct, similaire à un MDL, pour représenter la mémoire. Lorsque cela est possible, le pilote doit spécifier cet indicateur pour indiquer qu’un ADL peut être représenté uniquement avec l’adresse de base.

[in] Flags.Reserved

Réservés au; doit être défini sur zéro.

[in] Flags.Value

Une autre façon d’accéder aux bits.

[out] pAdl

Lors d’un appel réussi à DXGKCB_ALLOCATEADL, pointe vers la structure DXGK_ADL avec une liste d’adresses de page qui peuvent être utilisées pour programmer le matériel.

Remarques

Pour plus d’informations, consultez La remappage iommu DMA .

Configuration requise

Condition requise Valeur
Serveur minimal pris en charge Windows Server 2022 (WDDM 2.9)
En-tête d3dkmddi.h

Voir aussi

DXGKCB_ALLOCATEADL

DXGKCB_CREATEPHYSICALMEMORYOBJECT

DXGKCB_OPENPHYSICALMEMORYOBJECT