DXGKDDI_DISCONNECTDOORBELL callback function (d3dkmddi.h)
Important
Some information relates to a prerelease product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
The DxgkDdiDisconnectDoorbell function disconnects a previously connected doorbell from a hardware queue.
Syntax
DXGKDDI_DISCONNECTDOORBELL DxgkddiDisconnectdoorbell;
NTSTATUS DxgkddiDisconnectdoorbell(
INOUT_PDXGKARG_DISCONNECTDOORBELL pArgs
)
{...}
Parameters
pArgs
[in/out] Pointer to a DXGKARG_DISCONNECTDOORBELL structure that describes the doorbell to disconnect.
Return value
DxgkDdiDisconnectDoorbell must succeed and return STATUS_SUCCESS.
Remarks
The OS calls DxgkDdiDisconnectDoorbell to unmap the physical doorbell location assigned to this doorbell. KMD should disconnect the hardware queue, doorbell physical address and engine, etc. The physical doorbell location can be assigned to some other logical doorbell object.
KMD should not destroy or free any other objects associated with hDoorbell because the doorbell object is not being destroyed and can be reconnected at a later point.
On return from this DDI call, Dxgkrnl does the following steps to disconnect the doorbell:
- Rotates the user-mode DoorbellCpuVirtualAddress to a dummy page so that UMD can no longer write to the physical doorbell location.
- Writes D3DDDI_DOORBELL_STATUS_DISCONNECTED_RETRY into DoorbellStatusCpuVirtualAddress so that UMD knows the doorbell is disconnected.
For more information, see User-mode work submission.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 11, version 24H2 (WDDM 3.2) |
Header | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |