// d3dkmddi.h
DXGKDDI_CONNECTDOORBELL DxgkddiConnectdoorbell;
NTSTATUS DxgkddiConnectdoorbell(
INOUT_PDXGKARG_CONNECTDOORBELL pArgs
)
{...}
View the official Windows Driver Kit DDI referenceNo description available.
DxgkDdiConnectDoorbell connects (or reconnects) a previously created doorbell object to a hardware queue.
pArgs[in/out] Pointer to a DXGKARG_CONNECTDOORBELL structure that describes the doorbell to connect.
DxgkDdiConnectDoorbell returns STATUS_SUCCESS if KMD was able to successfully connect its doorbell object to the specified hardware queue. This call should not typically fail; however, a returned failure code would be from GPU lost or stopped kinds of irrecoverable scenarios.
When UMD calls D3DKMTConnectDoorbell, the OS calls DxgkDdiConnectDoorbell so that the KMD can do the following:
On return from this DDI, KMD should consider this physical address as reserved for this particular hardware queue. However, the OS doesn't have a uniqueness requirement for the doorbell's physical address. That is, KMD can choose to share the same physical address with multiple logical doorbells/hardware queues depending on the hardware implementation. For example, some hardware might choose to assign the same physical address to all the hardware queues of a single hardware context. It's even possible that multiple logical doorbells share the same 4KB physical page but use a unique offset within the page.
For more information, see User-mode work submission.