DXGKARGCB_ALLOCATE_ADL structure (d3dkmddi.h)

DXGKARGCB_ALLOCATE_ADL contains the information used by the DXGKCB_ALLOCATEADL callback function to create an address descriptor list (ADL).

Syntax

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;

Members

[in] hAdapterMemoryObject

The adapter memory object that describes the underlying logical memory used to build the ADL. This object was created via DXGKCB_CREATEPHYSICALMEMORYOBJECT or later opened via DXGKCB_OPENPHYSICALMEMORYOBJECT.

[in] Offset

The offset, in bytes, from the start of the physical memory object. This value must be a multiple of PAGE_SIZE.

[in] Size

The total number of bytes to allocate for the ADL. This value must be a multiple of PAGE_SIZE, such that the number of pages in the ADL will be Size/PAGE_SIZE.

Flags

[in] Flags.RequireContiguous

Indicates that the driver is requesting an ADL that describes a contiguous range of memory, instead of scattered pages. This flag is only valid if the physical memory object represented by hAdapterMemoryObject was allocated as DXGK_PHYSICAL_MEMORY_TYPE_CONTIGUOUS_MEMORY or DXGK_PHYSICAL_MEMORY_TYPE_IO_SPACE.

[in] Flags.PreferContiguous

Provides the driver with a way to optimally request a contiguous ADL when possible. When DMA remapping is enabled, ADLs will refer to ranges of logical address space; however, drivers might not be able to use contiguous ADLs in all code paths. Non-contiguous ADLs for logical memory can become costly since they require allocation of a separate PFN array, similar to an MDL, to represent the memory. When possible, the driver should specify this flag to indicate that an ADL can be represented with just the base address.

[in] Flags.Reserved

Reserved; must be set to zero.

[in] Flags.Value

An alternative way to access the bits.

[out] pAdl

On a successful call to DXGKCB_ALLOCATEADL, points to the DXGK_ADL structure with a list of page addresses that can be used to program the hardware.

Remarks

See IOMMU DMA remapping for more information.

Requirements

Requirement Value
Minimum supported server Windows Server 2022 (WDDM 2.9)
Header d3dkmddi.h

See also

DXGKCB_ALLOCATEADL

DXGKCB_CREATEPHYSICALMEMORYOBJECT

DXGKCB_OPENPHYSICALMEMORYOBJECT