DXGKCB_DISCONNECTDOORBELL回调函数 (d3dkmddi.h)
重要
某些信息与预发行产品相关,该产品在商业发布之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
KMD 调用 DxgkCbDisconnectDoorbell 以通知 Dxgkrnl KMD 需要断开以前连接的门铃与硬件队列的连接。
语法
DXGKCB_DISCONNECTDOORBELL DxgkcbDisconnectdoorbell;
NTSTATUS DxgkcbDisconnectdoorbell(
INOUT_PDXGKARGCB_DISCONNECTDOORBELL pArgs
)
{...}
参数
pArgs
[in]指向描述要断开连接的门铃 的DXGKARGCB_DISCONNECTDOORBELL 结构的指针。
返回值
如果 Dxgkrnl 找不到 hHwQueue 的关联 hDoorbell,或者 DisconnectReason 不是D3DDDI_DOORBELLSTATUS_DISCONNECTED_XXX 值之一,则 DxgkCbDisconnectDoorbell 返回STATUS_INVALID_PARAMETER。 在所有其他情况下,即使门铃已断开连接,此函数也会成功。
注解
KMD 调用此函数以在需要断开门铃时通知 Dxgkrnl 。 KMD 应考虑仅在从此回调返回后才断开物理门铃地址。
Dxgkrnl 取消映射虚拟地址,并将门铃标记为已断开连接。 具体而言, Dxgkrnl 执行以下步骤来断开门铃的连接:
- 将用户模式 DoorbellCpuVirtualAddress 旋转到虚拟页面,以便 UMD 无法再写入物理门铃位置。
- 将 DisconnectReason 写入 DoorbellStatusCpuVirtualAddress ,以便 UMD 知道门铃断开连接及其原因。
有关详细信息,请参阅 用户模式工作提交。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 11,版本 24H2 (WDDM 3.2) |
标头 | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |