DXGKARGCB_MAPFRAMEBUFFERPOINTER structure (d3dkmddi.h)

The DXGKARGCB_MAPFRAMEBUFFERPOINTER structure contains arguments used by the DXGKCB_MAPFRAMEBUFFERPOINTER callback function to map a frame buffer pointer.

Syntax

typedef struct _DXGKARGCB_MAPFRAMEBUFFERPOINTER {
  [in]     UINT   PhysicalAdapterIndex;
  [in]     SIZE_T Size;
  [in/out] SIZE_T Offset;
  [out]    PVOID  pBaseAddress;
} DXGKARGCB_MAPFRAMEBUFFERPOINTER;

Members

[in] PhysicalAdapterIndex

The index of the physical adapter.

[in] Size

The size, in bytes, of the mapped subregion of the section object. Size must be a multiple of PAGE_SIZE.

[in/out] Offset

On input, this is the offset, in bytes, to the mapped subregion of the section object. Offset must be a multiple of PAGE_SIZE. On output, this is the offset from the output base address to which the driver should copy the data.

[out] pBaseAddress

A CPU accessible base address pointer to the mapped subregion of the section object. The driver must add the output Offset value to the base address to get the destination address of any copy operations (pDestinationAddress = pBaseAddress + Offset).

Remarks

If pinning the entire frame buffer’s section object fails, the driver must try to ensure forward progress by performing the transfer in smaller pieces. This is accomplished by allocating a small MDL or chunk of memory during initialization time which can be used to transfer the contents from the hardware, and then calling DXGKCB_MAPFRAMEBUFFERPOINTER to obtain a pointer to a subregion of the section object.

The driver is responsible for copying the data from the pre-allocated buffer to the mapped subregion. The reverse is also true when restoring the frame buffer contents.

See IOMMU-based GPU isolation for more information.

Requirements

Requirement Value
Minimum supported client Windows 10, version 1803 (WDDM 2.4)
Header d3dkmddi.h

See also

DXGKCB_MAPFRAMEBUFFERPOINTER