PFND3DWDDM2_0DDI_SETHARDWAREPROTECTION回调函数 (d3d10umddi.h)
SetHardwareProtection 允许桌面窗口管理器(DWM)全屏交换链缓冲区在受保护和非受保护状态之间传输,而无需重新创建。
语法
PFND3DWDDM2_0DDI_SETHARDWAREPROTECTION Pfnd3dwddm20DdiSethardwareprotection;
void Pfnd3dwddm20DdiSethardwareprotection(
D3D10DDI_HDEVICE hDevice,
D3D10DDI_HRESOURCE hResource,
BOOL Protected
)
{...}
参数
hDevice
显示设备的句柄(图形上下文)。 Direct3D 运行时在创建设备时将用户模式驱动程序作为 hDeviceD3DDDIARG_CREATEDEVICE 成员传递给用户模式驱动程序。
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) |