// d3dkmddi.h
typedef struct _DXGKARG_CREATEDOORBELL {
HANDLE hHwQueue;
HANDLE hDoorbell;
UINT PrivateDriverDataSize;
void *PrivateDriverData;
HANDLE hRingBuffer;
HANDLE hRingBufferControl;
DXGKARG_CREATEDOORBELL_FLAGS Flags;
} DXGKARG_CREATEDOORBELL;
View the official Windows Driver Kit DDI referenceNo description available.
The DXGKARG_CREATEDOORBELL structure contains parameters for KMD's DxgkDdiCreateDoorbell callback function.
hHwQueue[in] Handle to a KMD hardware queue object, which was created in a previous call to DxgkddiCreateHwQueue.
hDoorbell[in/out] As input, contains the runtime's handle to the doorbell. KMD can store the input handle in its tracking structures. As output, when KMD finishes creating the doorbell, hDoorbell contains KMD's kernel-mode handle to the doorbell.
PrivateDriverDataSize[in] Size, in bytes, of the driver's private data that is associated with the doorbell.
PrivateDriverData[in/out] Pointer to the driver's private data that is associated with the doorbell.
hRingBuffer[in] Handle to the ring buffer allocation previously created by UMD. This allocation is GPU visible and already resident. 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] KMD 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.
FlagsA bit field of DXGKARG_CREATEDOORBELL_FLAGS values specifying the doorbell creation flags.
For more information, see User-mode work submission.