DXGKCB_DISCONNECTDOORBELL回调函数 (d3dkmddi.h)

重要

某些信息与预发行产品有关,该产品在商业发布之前可能会进行大幅修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。

KMD 调用 DxgkCbDisconnectDoorbell 来通知 Dxgkrnl KMD 需要断开以前连接的门铃与硬件队列的连接。

语法

DXGKCB_DISCONNECTDOORBELL DxgkcbDisconnectdoorbell;

NTSTATUS DxgkcbDisconnectdoorbell(
  INOUT_PDXGKARGCB_DISCONNECTDOORBELL pArgs
)
{...}

参数

pArgs

[in]指向描述要断开连接的门铃的 DXGKARGCB_DISCONNECTDOORBELL 结构的指针。

返回值

DxgkCbDisconnectDoorbell 如果 Dxgkrnl 找不到 hHwQueue的关联 hDoorbell,或者如果 DisconnectReason 不是 D3DDDI_DOORBELLSTATUS_DISCONNECTED_XXX 值之一,则返回 STATUS_INVALID_PARAMETER。 在所有其他情况下,即使门铃已断开连接,此函数也会成功。

言论

KMD 调用此函数,以在需要断开门铃时通知 Dxgkrnl。 KMD 应考虑仅在从此回调返回后才断开连接的物理门铃地址。

Dxgkrnl 取消映射虚拟地址,并将门铃标记为断开连接。 具体而言,Dxgkrnl 执行以下步骤来断开门铃的连接:

  • 将用户模式 DoorbellCpuVirtualAddress 旋转到虚拟页面,以便 UMD 无法再写入物理门铃位置。
  • DisconnectReason 写入 DoorbellStatusCpuVirtualAddress,以便 UMD 知道门铃已断开连接以及原因。

有关详细信息,请参阅 用户模式工作提交

要求

要求 价值
最低支持的客户端 Windows 11 版本 24H2 (WDDM 3.2)
标头 d3dkmddi.h
IRQL PASSIVE_LEVEL

另请参阅

DXGKARGCB_DISCONNECTDOORBELL

DxgkDdiConnectDoorbell