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 |