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::GetDecoderBuffer 或 ID3D11VideoContext::ReleaseDecoderBuffer 时可能发生的死锁问题。 若要设置多线程保护,请首先在 ID3D11Device 上调用 QueryInterface 以获取 ID3D10Multithread 指针。 然后调用 ID3D10Multithread::SetMultithreadProtected,为 bMTProtect 传入 true。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2012 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | mfobjects.h (包括 Mfidl.h) |