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_VIDEO_SUPPORT裝置建立 旗標來建立,該旗標定義於 D3D11_CREATE_DEVICE_FLAG 列舉中。
建議您在裝置內容上使用多線程保護,以避免在呼叫 ID3D11VideoContext::GetDecoderBuffer 或 ID3D11VideoContext::ReleaseDecoderBuffer 時發生死結問題。 若要設定多線程保護,請先在ID3D11Device上呼叫QueryInterface以取得ID3D10Multithread指標。 然後呼叫 ID3D10Multithread::SetMultithreadProtected,並針對 bMTProtect 傳入 true。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2012 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | mfobjects.h (include Mfidl.h) |