DXGKDDI_STARTDIRTYTRACKING callback function (d3dkmddi.h)

KMD's DxgkDdiStartDirtyTracking function enables dirty bit tracking within the specified segment and given address range.

Syntax

DXGKDDI_STARTDIRTYTRACKING DxgkddiStartdirtytracking;

NTSTATUS DxgkddiStartdirtytracking(
  IN_CONST_HANDLE hAdapter,
  IN_CONST_HANDLE hMemoryBasis
)
{...}

Parameters

hAdapter

[in] A handle to a context block associated with a display adapter. KMD previously provided this handle to Dxgkrnl in the MiniportDeviceContext output parameter of the DxgiDdiAddDevice function.

hMemoryBasis

[in] Handle to the memory basis over which to start tracking dirty operations. KMD created this handle in a previous call to DxgkDdiCreateMemoryBasis.

Return value

DxgkDdiStartDirtyTracking returns STATUS_SUCCESS upon success. Otherwise, it returns an appropriate NTSTATUS code.

Remarks

The driver only needs to ensure that dirty tracking is enabled for the specified memory basis. However, doing so at a coarser granularity (for example, enabling dirty tracking for the entire adapter or segment) is valid as long as all outstanding requests are honored.

Dxgkrnl might enable dirty page tracking on multiple segments or ranges within those segments simultaneously.

When dirty tracking is enabled, Dxgkrnl expects the dirty bitplane to be initialized to all zeroes (all pages unmodified).

For more information, see Dirty bit tracking.

Requirements

Requirement Value
Minimum supported client Windows 11, version 24H2 (WDDM 3.2)
Header d3dkmddi.h
IRQL PASSIVE_LEVEL

See also

DxgkDdiCreateMemoryBasis

DxgkDdiStopDirtyTracking