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 方法的轮询指示设备已删除。

ISignalableNotifierSetThreadpoolWait 可由 UWP 应用使用。

当图形设备丢失时,应用或游戏将收到图形事件,以便应用或游戏知道其图形设备不再有效,并且应用或游戏可以安全地重新创建其 DirectX 设备。 为了响应此事件,应用或游戏需要重新创建其呈现设备,并将其传递到合成图形设备对象上的 SetRenderingDevice 调用中。

设置此新呈现设备后,应用或游戏需要在合成图形设备的 OnRenderingDeviceReplaced 事件触发后重绘所有预先存在的图面的内容。

此方法支持设备丢失的 Composition。

在最理想的重新创建事件时,不会发出信号。 因此,我们建议循环访问适配器序号,并创建将成功的第一个序号。

应用程序可以向设备注册事件。 删除设备时,将向应用程序发出信号。

如果设备已被移除,则对 RegisterDeviceRemovedEvent 的调用将立即发出事件信号。 RegisterDeviceRemovedEvent 不会返回任何设备删除的错误代码。

每个“已删除设备”事件永远不会发出信号,或者只发出一次信号。 这些事件在设备销毁期间不会发出信号。 这些事件在销毁期间取消注册。

RegisterDeviceRemovedEvent 的语义类似于 IDXGIFactory2::RegisterOcclusionStatusEvent

要求

要求
目标平台 Windows
标头 d3d11_4.h
Library D3d11.lib

另请参阅

ID3D11Device4

UnregisterDeviceRemoved