Поделиться через


структура DXGKARGCB_ALLOCATE_ADL (d3dkmddi.h)

DXGKARGCB_ALLOCATE_ADL содержит сведения, используемые функцией обратного вызова DXGKCB_ALLOCATEADL для создания списка дескрипторов адресов (ADL).

Синтаксис

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;

Члены

[in] hAdapterMemoryObject

Объект памяти адаптера, описывающий базовую логическую память, используемую для сборки ADL. Этот объект был создан через DXGKCB_CREATEPHYSICALMEMORYOBJECT или более поздней версии, открытый через DXGKCB_OPENPHYSICALMEMORYOBJECT.

[in] Offset

Смещение в байтах с начала объекта физической памяти. Это значение должно быть несколькими PAGE_SIZE.

[in] Size

Общее количество байтов, выделяемых для ADL. Это значение должно быть несколькими PAGE_SIZE, поэтому количество страниц в ADL будет размер/PAGE_SIZE.

Flags

[in] Flags.RequireContiguous

Указывает, что драйвер запрашивает ADL, описывающий непрерывный диапазон памяти, а не разбросанные страницы. Этот флаг действителен только в том случае, если объект физической памяти, представленный hAdapterMemoryObject, был выделен как DXGK_PHYSICAL_MEMORY_TYPE_CONTIGUOUS_MEMORY или DXGK_PHYSICAL_MEMORY_TYPE_IO_SPACE.

[in] Flags.PreferContiguous

Предоставляет драйверу способ оптимально запрашивать непрерывный ADL, когда это возможно. Если включена перенаправка DMA, adLs будет ссылаться на диапазоны логического адресного пространства; Однако драйверы могут не использовать смежные списки AD во всех путях кода. Несвязанные списки AD для логической памяти могут стать дорогостоящими, так как для представления памяти требуется выделение отдельного массива PFN, аналогичного MDL. По возможности драйвер должен указать этот флаг, чтобы указать, что ADL может быть представлен только базовым адресом.

[in] Flags.Reserved

Скрытный; должно быть равно нулю.

[in] Flags.Value

Альтернативный способ доступа к битам.

[out] pAdl

При успешном вызове DXGKCB_ALLOCATEADLуказывает на структуру DXGK_ADL со списком адресов страниц, которые можно использовать для программирования оборудования.

Замечания

Дополнительные сведения см. в переназначивания DMA IOMMU.

Требования

Требование Ценность
минимальный поддерживаемый сервер Windows Server 2022 (WDDM 2.9)
заголовка d3dkmddi.h

См. также

DXGKCB_ALLOCATEADL

DXGKCB_CREATEPHYSICALMEMORYOBJECT

DXGKCB_OPENPHYSICALMEMORYOBJECT