D3DKMTConnectDoorbell - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// d3dkmthk.h

NTSTATUS D3DKMTConnectDoorbell(
  D3DKMT_CONNECT_DOORBELL *unnamedParam1
);
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (nf-d3dkmthk-d3dkmtconnectdoorbell)

Description

D3DKMTConnectDoorbell connects (or reconnects) a previously created doorbell to a hardware queue.

Parameters

unnamedParam1

[in] Pointer to a **D3DKMT_CONNECT_DOORBELL** structure that describes the doorbell to connect.

Return value

D3DKMTConnectDoorbell returns STATUS_SUCCESS when the OS successfully connects the doorbell to the hardware queue and UMD can use this doorbell for work submission. Typically this call should not fail; however, a failure code would be from GPU lost or stop kinds of irrecoverable scenarios.

Remarks

Each time the UMD submits new work to the hardware queue and rings the doorbell, it must read the DoorbellStatusCPUVirtualAddress to check whether the doorbell ring succeeded. On failure, UMD must call D3DKMTConnectDoorbell to reconnect the doorbell and then try the submission again.

A doorbell can be disconnected for several reasons:

When UMD calls D3DKMTConnectDoorbell to connect the doorbell assigned to a hardware queue, the OS makes a corresponding DxgkDdiConnectDoorbell call to KMD, so that the KMD can find a physical doorbell, assign it to this hardware queue, and make the required connections between the hardware queue, doorbell, GPU scheduler and so forth.

For more information, see User-mode work submission.

See also

D3DKMT_CONNECT_DOORBELL

D3DKMTCreateDoorbell

DxgkDdiConnectDoorbell