DXGKDDI_OPENNATIVEFENCE callback function (d3dkmddi.h)

DxgkDdiOpenNativeFence is called by the OS to open a native GPU fence object.

Syntax

DXGKDDI_OPENNATIVEFENCE DxgkddiOpennativefence;

NTSTATUS DxgkddiOpennativefence(
  IN_CONST_HANDLE hAdapter,
  INOUT_PDXGKARG_OPENNATIVEFENCE pOpenNativeFence
)
{...}

Parameters

hAdapter

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

pOpenNativeFence

[in/out] Pointer to a DXGKARG_OPENNATIVEFENCE structure that describes the native GPU fence to open.

Return value

DxgkDdiOpenNativeFence returns STATUS_SUCCESS if KMD was able to successfully open a native GPU fence object. Otherwise, it returns an appropriate NTSTATUS error code.

Remarks

DxgkDdiOpenNativeFence is always preceded by a call to DxgkDdiCreateNativeFence.

If a second process opens the shared native fence object using D3DKMT_OPENNATIVEFENCEFROMNTHANDLE, Dxgkrnl does the following:

  • Locates the hGlobalNativeFence.
  • Creates a new CPU virtual address (VA) and GPU VA mapping for that existing object in the second process's address space.

Dxgkrnl passes this payload to the KMD by calling DxgkDdiOpenNativeFence along with a new hLocalNativeFence handle.

For more information about native GPU fences, see Native GPU fence objects.

Requirements

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

See also

DXGKARG_OPENNATIVEFENCE

DxgkDdiCloseNativeFence

DxgkDdiCreateNativeFence