D3DKMTMapGpuVirtualAddress function

D3DKMTMapGpuVirtualAddress maps a graphics processing unit (GPU) virtual address ranges to a specific allocation range or puts it to the Invalid or Zero state. The driver can specify a base GPU virtual address to map or let the video memory manager automatically pick one. When specifying a non-NULL base address, the entire range from BaseAddress to BaseAddress+Size must be in a freed state or belong to a virtual address range that was obtained by calling MapGpuVirtualAddress or DxgkCbReserveGpuVirtualAddressRange. Note that when Protection.Zero or Protection.NoAccess is specified, the virtual address range cannot belong to a range that was obtained by calling MapGpuVirtualAddress. The driver may specify if the mapping should allow for write and execute privileges in addition to read privileges, which always exist by default. In the linked display adapter configuration the paging queue defines a physical GPU, whose page tables are modified, and the allocation handle (if not NULL) defines where the page table entries are pointing to. The allocation can be resident in any physical GPU memory segment.


NTSTATUS D3DKMTMapGpuVirtualAddress(



pData [in, out]

A pointer to a D3DDDI_MAPGPUVIRTUALADDRESS structure that describes the operation.

Return Value

|Return code|Description| |--- |--- | |STATUS_SUCCESS|The device context was successfully created.| |STATUS_INVALID_PARAMETER|Parameters were validated and determined to be incorrect.|   This function might also return other NTSTATUS values.


Minimum supported client Windows 10
Minimum supported server Windows Server 2016
Target Platform Universal
Header d3dkmthk.h (include D3dkmthk.h)
Library Gdi32.lib
DLL Gdi32.dll

See Also