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 |