D3DKMTConnectDoorbell 函数 (d3dkmthk.h)
重要
某些信息与预发行产品相关,该产品在商业发布之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
D3DKMTConnectDoorbell 将 以前创建的门铃对象 (或重新连接到硬件队列) 。
语法
NTSTATUS D3DKMTConnectDoorbell(
D3DKMT_CONNECT_DOORBELL *unnamedParam1
);
参数
unnamedParam1
[in]指向描述要连接的门铃 的D3DKMT_CONNECT_DOORBELL 结构的指针。
返回值
当 OS 成功将门铃对象连接到硬件队列并且 UMD 可以将此门铃用于工作提交时,D3DKMTConnectDoorbell 将返回STATUS_SUCCESS。 通常,此调用不应失败;但是,失败代码来自 GPU 丢失或停止各种不可恢复的情况。
注解
每当 UMD 将新工作提交到队列并响铃时,它都必须读取 pDoorbellStatusCPUVirtualAddress,以检查门铃环是否成功。 如果失败,UMD 必须调用 D3DKMTConnectDoorbell 重新连接门铃,然后重试提交。
门铃可能出于多种原因断开连接,例如:
- 创建门铃后,OS 会将其初始化为“已断开连接”状态,并且仅在 UMD 首次调用 D3DKMTConnectDoorbell 时连接。
- 门铃在支持专用门铃模型的硬件上被“牺牲”。 也就是说,此硬件队列的物理门铃已分配给另一个硬件队列。 这种重新分配可能是因为 GPU 上创建的硬件队列多于物理门铃。
- 作为暂停硬件队列或关闭 GPU 电源的一部分,门铃已断开连接。
当 UMD 调用 D3DKMTConnectDoorbell 以连接分配给硬件队列的门铃时,OS 会向 KMD 发出相应的 DxgkDdiConnectDoorbell 调用,以便 KMD 可以找到物理门铃,将其分配给此硬件队列,并在硬件队列、门铃、GPU 计划程序等之间建立所需的连接。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | WIN11_FUTURE |
标头 | d3dkmthk.h |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈