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

另请参阅

DXGKARGCB_DISCONNECTDOORBELL

DxgkDdiConnectDoorbell