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::GetDecoderBufferID3D11VideoContext::ReleaseDecoderBuffer 時發生死結問題。 若要設定多線程保護,請先在ID3D11Device上呼叫QueryInterface以取得ID3D10Multithread指標。 然後呼叫 ID3D10Multithread::SetMultithreadProtected,並針對 bMTProtect 傳入 true

規格需求

需求
最低支援的用戶端 Windows 8 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2012 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 mfobjects.h (include Mfidl.h)

另請參閱

IMFDXGIDeviceManager