Compartir a través de


estructura DXGKARGCB_ALLOCATE_ADL (d3dkmddi.h)

DXGKARGCB_ALLOCATE_ADL contiene la información utilizada por la función de devolución de llamada DXGKCB_ALLOCATEADL para crear una lista de descriptores de direcciones (ADL).

Sintaxis

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;

Miembros

[in] hAdapterMemoryObject

Objeto de memoria del adaptador que describe la memoria lógica subyacente utilizada para compilar el ADL. Este objeto se creó a través de DXGKCB_CREATEPHYSICALMEMORYOBJECT o posterior abierto a través de DXGKCB_OPENPHYSICALMEMORYOBJECT.

[in] Offset

Desplazamiento, en bytes, desde el principio del objeto de memoria física. Este valor debe ser un múltiplo de PAGE_SIZE.

[in] Size

Número total de bytes que se van a asignar para el ADL. Este valor debe ser un múltiplo de PAGE_SIZE, de modo que el número de páginas del ADL sea Size/PAGE_SIZE.

Flags

[in] Flags.RequireContiguous

Indica que el controlador solicita un ADL que describe un intervalo contiguo de memoria, en lugar de páginas dispersas. Esta marca solo es válida si el objeto de memoria física representado por hAdapterMemoryObject se asignó como DXGK_PHYSICAL_MEMORY_TYPE_CONTIGUOUS_MEMORY o DXGK_PHYSICAL_MEMORY_TYPE_IO_SPACE.

[in] Flags.PreferContiguous

Proporciona al controlador una manera óptima de solicitar un ADL contiguo siempre que sea posible. Cuando se habilita la reasignación de DMA, las ADL harán referencia a intervalos de espacio de direcciones lógicos; Sin embargo, es posible que los controladores no puedan usar ADL contiguos en todas las rutas de acceso de código. Las ADL no contiguas para la memoria lógica pueden resultar costosas, ya que requieren la asignación de una matriz PFN independiente, similar a una MDL, para representar la memoria. Cuando sea posible, el controlador debe especificar esta marca para indicar que un ADL se puede representar solo con la dirección base.

[in] Flags.Reserved

Reservados; debe establecerse en cero.

[in] Flags.Value

Una manera alternativa de acceder a los bits.

[out] pAdl

En una llamada correcta a DXGKCB_ALLOCATEADL, apunta a la estructura DXGK_ADL con una lista de direcciones de página que se pueden usar para programar el hardware.

Comentarios

Consulte la reasignación de DMA de IOMMU para obtener más información.

Requisitos

Requisito Value
Servidor mínimo compatible Windows Server 2022 (WDDM 2.9)
Encabezado d3dkmddi.h

Consulte también

DXGKCB_ALLOCATEADL

DXGKCB_CREATEPHYSICALMEMORYOBJECT

DXGKCB_OPENPHYSICALMEMORYOBJECT