DXGKARGCB_ALLOCATE_ADL - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// d3dkmddi.h

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;
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ns-d3dkmddi-dxgkargcb_allocate_adl)

Description

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

Members

hAdapterMemoryObject [in]

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.

Offset [in]

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

Size [in]

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

Flags.RequireContiguous [in]

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.

Flags.PreferContiguous [in]

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.

Flags.Reserved [in]

Reserved; must be set to zero.

Flags.Value [in]

An alternative way to access the bits.

pAdl [out]

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.

See also

DXGKCB_ALLOCATEADL

DXGKCB_CREATEPHYSICALMEMORYOBJECT

DXGKCB_OPENPHYSICALMEMORYOBJECT