DXGKCB_ALLOCATEADL callback function (d3dkmddi.h)

DXGKCB_ALLOCATEADL creates an address descriptor list (ADL).

Syntax

DXGKCB_ALLOCATEADL DxgkcbAllocateadl;

NTSTATUS DxgkcbAllocateadl(
  [in/out] IN_OUT_PDXGKARGCB_ALLOCATE_ADL pArgs
)
{...}

Parameters

[in/out] pArgs

Pointer to a DXGKARGCB_ALLOCATE_ADL structure that contains information about the ADL to create. On success, returns a DXGK_ADL structure with a list of page addresses that can be used to program the hardware.

Return value

Returns STATUS_SUCCESS if the operation succeeds. Otherwise, returns an appropriate NTSTATUS error code, such as STATUS_INVALID_PARAMETER.

Remarks

The DXGKCB_ALLOCATEADL and DXGKCB_FREEADL functions are used to create and destroy ADLs that describe memory addresses that can be programmed (mapped) to the GPU. The underlying memory can point to either logical or physical memory depending on whether the IOMMU is being used, so the driver must not attempt to assume that these addresses represent physical pages.

When an ADL is allocated from the physical object, Dxgkrnl guarantees that this memory remains locked and is non-pageable for the lifetime of the ADL.

See IOMMU DMA remapping for more information.

DXGKCB_XXX functions are implemented by Dxgkrnl. To use this callback function, set the appropriate members of DXGKARGCB_ALLOCATE_ADL and then call DxgkCbAllocateAdl via the DXGKRNL_INTERFACE.

Requirements

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

See also

DXGKARGCB_ALLOCATE_ADL

DXGKCB_FREEADL

DXGKRNL_INTERFACE