// d3dkmddi.h
typedef struct _DXGKARG_CONNECTDOORBELL {
HANDLE hDoorbell;
DXGKARG_CONNECTDOORBELL_FLAGS Flags;
void *KernelCpuVirtualAddress;
void *SecondaryKernelCpuVirtualAddress;
D3DDDI_DOORBELLSTATUS Status;
} DXGKARG_CONNECTDOORBELL;
View the official Windows Driver Kit DDI referenceNo description available.
The DXGKARG_CONNECTDOORBELL structure contains parameters for DxgkDdiConnectDoorbell.
hDoorbell[in] KMD handle to the doorbell object, which was previously created using DxgkDdiCreateDoorbell.
Flags[in] A bit field of DXGKARG_CONNECTDOORBELL_FLAGS values specifying the doorbell connection flags. If UMD created this doorbell with the RequireSecondaryCpuVA flag, then Dxgkrnl sets the RequireSecondaryAddress flag in this DDI to inform KMD that this doorbell requires two physical addresses.
KernelCpuVirtualAddress[out] Kernel-mode CPU virtual address mapped to the physical address that KMD wants to assign to this doorbell. Dxgkrnl will map this address to a process address space CPU virtual address that was provided to the UMD in D3DKMTCreateDoorbell. UMD will write a specific value to this address, effectively "ringing the doorbell" to notify the GPU scheduler of a new work submission on hHwQueue.
SecondaryKernelCpuVirtualAddress[out/optional] Kernel-mode CPU virtual address mapped to the secondary physical address that KMD wants to assign to this doorbell, if required.
Status[out] A D3DDDI_DOORBELLSTATUS value that KMD wants Dxgkrnl to write into the UMD-visible page that pDoorbellStatusCpuVirtualAddress points to. This value can only be D3DDDI_DOORBELL_STATUS_CONNECTED or D3DDDI_DOORBELL_STATUS_CONNECTED_NOTIFY.
For more information, see User-mode work submission.