DXGKCB_ALLOCATECONTIGUOUSMEMORY callback function (d3dkmddi.h)
DXGKCB_ALLOCATECONTIGUOUSMEMORY allocates contiguous memory regions in the IOMMU's logical address space.
Syntax
DXGKCB_ALLOCATECONTIGUOUSMEMORY DxgkcbAllocatecontiguousmemory;
NTSTATUS DxgkcbAllocatecontiguousmemory(
[in] IN_CONST_HANDLE hAdapter,
[in/out] INOUT_PDXGKARGCB_ALLOCATECONTIGUOUSMEMORY pAllocateContiguousMemory
)
{...}
Parameters
[in] hAdapter
Handle to a display adapter.
[in/out] pAllocateContiguousMemory
Pointer to a DXGKARGCB_ALLOCATECONTIGUOUSMEMORY structure that contains arguments to allocate contiguous memory.
Return value
Return STATUS_SUCCESS if the operation succeeds. Otherwise, return an appropriate NTSTATUS error code.
Remarks
This callback function is Dxgkrnl's equivalent to the MmAllocateContiguousMemory function.
DXGKCB_XXX functions are implemented by Dxgkrnl. To use this callback function, set the appropriate members of DXGKARGCB_ALLOCATECONTIGUOUSMEMORY and then call DxgkCbAllocateContiguousMemory via the DXGKRNL_INTERFACE.
All memory accessed by the GPU during paging operations, or mapped via the GpuMmu must be mapped to the IOMMU. The Dxgkrnl provides callbacks to the KMD to allow the allocation and remapping in one step.
Note
The driver should not lock any memory. Dxgkrnl will manage locked pages for the driver, and once the memory is remapped, the logical address of the pages provided to the driver may no longer match the physical addresses.
See IOMMU-based GPU isolation for more information.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 10, version 1803 (WDDM 2.4) |
Header | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |