D3DKMT_CREATE_DOORBELL structure (d3dkmthk.h)

The D3DKMT_CREATE_DOORBELL structure contains parameters for D3DKMTCreateDoorbell.

Syntax

typedef struct _D3DKMT_CREATE_DOORBELL {
  D3DKMT_HANDLE                hHwQueue;
  D3DKMT_HANDLE                hRingBuffer;
  D3DKMT_HANDLE                hRingBufferControl;
  D3DKMT_CREATE_DOORBELL_FLAGS Flags;
  UINT                         PrivateDriverDataSize;
  void                         D3DKMT_PTR(
    VOID              *unnamedParam1,
    PrivateDriverData unnamedParam2
  );
  void                         D3DKMT_PTR(
    VOID                      *unnamedParam1,
    DoorbellCPUVirtualAddress unnamedParam2
  );
  void                         D3DKMT_PTR(
    VOID                               *unnamedParam1,
    DoorbellSecondaryCPUVirtualAddress unnamedParam2
  );
  void                         D3DKMT_PTR(
    VOID                            *unnamedParam1,
    DoorbellStatusCPUVirtualAddress unnamedParam2
  );
  void                         D3DKMT_PTR(
    VOID                                                 *unnamedParam1,
    HwQueueProgressFenceLastQueuedValueCPUVirtualAddress unnamedParam2
  );
  D3DKMT_HANDLE                hDoorbell;
} D3DKMT_CREATE_DOORBELL;

Members

hHwQueue

[in] UMD handle of the hardware queue object created in a prior call to D3DKMTCreateHwQueue. This handle identifies the hardware queue for which a doorbell needs to be assigned.

hRingBuffer

[in] UMD handle to a ring buffer allocation that UMD previously created. The allocation must be GPU visible and already resident. Dxgkrnl passes along the GPU virtual address (VA) and size of this allocation to KMD in a corresponding DxgkDdiCreateDoorbell call. The ResizeRingBufferOperation flag is a hint from UMD to KMD that a doorbell is being recreated for this hardware queue with a new, resized ring buffer.

hRingBufferControl

[in/optional] UMD handle to a ring buffer control allocation previously created by UMD. UMD and KMD can use this allocation as a control area to store ring buffer read/write pointer locations if required. The allocation must be GPU visible and already resident when UMD calls D3DKMTCreateDoorbell. Dxgkrnl passes along the GPU VA and size of this allocation to KMD in a corresponding DxgkDdiCreateDoorbell call.

Flags

[in/optional] A bit field of D3DKMT_CREATE_DOORBELL_FLAGS values specifying the doorbell creation flags.

PrivateDriverDataSize

[in] Size of the private driver data that pPrivateDriverData points to, in bytes.

void D3DKMT_PTR( VOID *unnamedParam1, PrivateDriverData unnamedParam2)

void D3DKMT_PTR( VOID *unnamedParam1, DoorbellCPUVirtualAddress unnamedParam2)

void D3DKMT_PTR( VOID *unnamedParam1, DoorbellSecondaryCPUVirtualAddress unnamedParam2)

void D3DKMT_PTR( VOID *unnamedParam1, DoorbellStatusCPUVirtualAddress unnamedParam2)

void D3DKMT_PTR( VOID *unnamedParam1, HwQueueProgressFenceLastQueuedValueCPUVirtualAddress unnamedParam2)

hDoorbell

[out] Runtime handle to the newly created doorbell object.

Remarks

For more information, see User-mode work submission.

Requirements

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

See also

D3DKMT_CREATE_DOORBELL_FLAGS

D3DKMTConnectDoorbell

D3DKMTCreateAllocation

D3DKMTCreateDoorbell

DxgkDdiConnectDoorbell

DxgkDdiCreateDoorbell