IMFDXGIDeviceManager::ResetDevice 方法 (mfobjects.h)

设置 Microsoft Direct3D 设备或通知设备管理器 Direct3D 设备已重置。

语法

HRESULT ResetDevice(
  [in] IUnknown *pUnkDevice,
  [in] UINT     resetToken
);

参数

[in] pUnkDevice

指向 DXGI 设备的 IUnknown 接口的指针。

[in] resetToken

MFCreateDXGIDeviceManager 函数的 pResetToken 参数中收到的令牌。

返回值

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

首次创建 DXGI 设备管理器时,请使用指向 Direct3D 设备的指针调用此方法。 (设备管理器不创建设备;调用方必须首先提供设备指针。) 如果 Direct3D 设备丢失,并且需要重置设备或创建新设备,请调用此方法。

resetToken 参数可确保只有最初创建设备管理器的组件才能使当前设备失效。

如果此方法成功,则所有打开的设备句柄都无效。

若要创建 Microsoft Direct3D 11 设备,请调用 D3D11CreateDevice

应使用D3D11_CREATE_DEVICE_FLAG枚举中定义的 D3D11_CREATE_DEVICE_VIDEO_SUPPORT 设备创建标志创建 设备

建议对设备上下文使用多线程保护,以防止在调用 ID3D11VideoContext::GetDecoderBufferID3D11VideoContext::ReleaseDecoderBuffer 时可能发生的死锁问题。 若要设置多线程保护,请首先在 ID3D11Device 上调用 QueryInterface 以获取 ID3D10Multithread 指针。 然后调用 ID3D10Multithread::SetMultithreadProtected,为 bMTProtect 传入 true

要求

要求
最低受支持的客户端 Windows 8 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 [桌面应用 |UWP 应用]
目标平台 Windows
标头 mfobjects.h (包括 Mfidl.h)

另请参阅

IMFDXGIDeviceManager