PFND3DWDDM2_0DDI_SETHARDWAREPROTECTION回调函数 (d3d10umddi.h)
SetHardwareProtection 允许桌面窗口管理器 (DWM) 全屏交换链缓冲区在受保护的和非受保护状态之间传输,而无需重新创建。
语法
PFND3DWDDM2_0DDI_SETHARDWAREPROTECTION Pfnd3dwddm20DdiSethardwareprotection;
void Pfnd3dwddm20DdiSethardwareprotection(
D3D10DDI_HDEVICE hDevice,
D3D10DDI_HRESOURCE hResource,
BOOL Protected
)
{...}
参数
hDevice
显示设备的句柄 (图形上下文) 。 Direct3D 运行时在创建设备时将用户模式驱动程序此句柄作为D3DDDIARG_CREATEDEVICE结构的 hDevice 成员传递。
hResource
通过调用 CreateResourceDDI 创建的资源对象的句柄。
Protected
指示应保护缓冲区。
返回值
无
备注
销毁和重新创建 DWM 交换链缓冲区是一项重量级操作,在某些硬件上可以避免此操作。 仅当驱动程序报告 D3DWDDM2_0DDI_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECTED_MEMORY_TRANSITION 功能时,才会调用此 DDI。 如果未设置此设置,则会销毁并重新创建基础 DWM 交换链分配。
SetHardwareProtection 在不可见的交换链缓冲区上调用,允许它在受保护模式和未受保护的模式之间转换,而不会造成视觉伪像。 当 DWM 翻转到新更改的缓冲区时,DWM 将在交换链缓冲区中的下一个缓冲区上调用 SetHardwareProtection ,依此调用,直到在每个交换链缓冲区上设置了新的保护状态。
注意 保证 DWM 在硬件保护状态更改后重新呈现整个交换链缓冲区。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 |
最低受支持的服务器 | Windows Server 2016 |
目标平台 | 桌面 |
标头 | d3d10umddi.h (包括 D3d10umddi.h) |