ID3D11Device4::RegisterDeviceRemovedEvent 方法 (d3d11_4.h)
使用异步通知机制注册“已删除设备”事件,并指示 Direct3D 设备何时因任何原因被删除。
语法
HRESULT RegisterDeviceRemovedEvent(
[in] HANDLE hEvent,
[out] DWORD *pdwCookie
);
参数
[in] hEvent
类型: HANDLE
“已删除设备”事件的句柄。
[out] pdwCookie
类型: DWORD*
指向有关“已删除设备”事件的信息的指针,可在 UnregisterDeviceRemoved 中使用该事件取消注册事件。
返回值
类型: HRESULT
请参阅 Direct3D 11 返回代码。
注解
指示 Direct3D 设备何时因任何原因被删除,使用异步通知机制,而不是作为 Present 中的 HRESULT。 在收到发生通知后,可以使用 ID3D11Device::GetDeviceRemovedReason 检索设备删除的原因。
应用程序向特定设备注册和取消注册 Win32 事件句柄。 删除设备时,将向该事件句柄发出信号。 对设备的 ID3D11Device::GetDeviceRemovedReason 方法的轮询指示设备已删除。
ISignalableNotifier 或 SetThreadpoolWait 可由 UWP 应用使用。
当图形设备丢失时,应用或游戏将收到图形事件,以便应用或游戏知道其图形设备不再有效,并且应用或游戏可以安全地重新创建其 DirectX 设备。 为了响应此事件,应用或游戏需要重新创建其呈现设备,并将其传递到合成图形设备对象上的 SetRenderingDevice 调用中。
设置此新呈现设备后,应用或游戏需要在合成图形设备的 OnRenderingDeviceReplaced 事件触发后重绘所有预先存在的图面的内容。
此方法支持设备丢失的 Composition。
在最理想的重新创建事件时,不会发出信号。 因此,我们建议循环访问适配器序号,并创建将成功的第一个序号。
应用程序可以向设备注册事件。 删除设备时,将向应用程序发出信号。
如果设备已被移除,则对 RegisterDeviceRemovedEvent 的调用将立即发出事件信号。 RegisterDeviceRemovedEvent 不会返回任何设备删除的错误代码。
每个“已删除设备”事件永远不会发出信号,或者只发出一次信号。 这些事件在设备销毁期间不会发出信号。 这些事件在销毁期间取消注册。
RegisterDeviceRemovedEvent 的语义类似于 IDXGIFactory2::RegisterOcclusionStatusEvent。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d11_4.h |
Library | D3d11.lib |