DXGKCB_PINFRAMEBUFFERFORSAVE2 callback function (d3dkmddi.h)

A kernel-mode display miniport driver calls DXGKCB_PINFRAMEBUFFERFORSAVE2 to pin an entire frame buffer at once.

Syntax

DXGKCB_PINFRAMEBUFFERFORSAVE2 DxgkcbPinframebufferforsave2;

NTSTATUS DxgkcbPinframebufferforsave2(
  [in]     IN_CONST_HANDLE hAdapter,
  [in/out] INOUT_PDXGKARGCB_PINFRAMEBUFFERFORSAVE2 pPinFrameBufferForSave2
)
{...}

Parameters

[in] hAdapter

A handle to a display adapter. The driver provides this handle for the main/lead device in the linked display adapter (LDA) chain.

[in/out] pPinFrameBufferForSave2

Pointer to a DXGKARGCB_PINFRAMEBUFFERFORSAVE2 structure that contains information about the frame buffer to save.

Return value

DXGKCB_PINFRAMEBUFFERFORSAVE2 returns STATUS_SUCCESS if the operation succeeds. Otherwise, returns an appropriate NTSTATUS error code.

Remarks

The original WDDM 2.4 IOMMU implementation included a pair of callback functions to query memory needed to save the frame buffer. The frame buffer save area was created as a section object during initialization, and the driver used these callbacks to obtain an IOMMU mapped region when needed.

Drivers that use address descriptor lists (ADLs) to support logical DMA remapping implement DXGKCB_PINFRAMEBUFFERFORSAVE2 instead of DXGKARGCB_PINFRAMEBUFFERFORSAVE.

The memory pinned using DXGKCB_PINFRAMEBUFFERFORSAVE2 can be unpinned using the original DXGKCB_UNPINFRAMEBUFFERFORSAVE callback.

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_PINFRAMEBUFFERFORSAVE2 and then call DxgkCbPinFrameBufferForSave2 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_PINFRAMEBUFFERFORSAVE2

DXGKARGCB_PINFRAMEBUFFERFORSAVE

DXGKCB_UNPINFRAMEBUFFERFORSAVE