次の方法で共有


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 を呼び出すときに発生する可能性があるデッドロックの問題を防ぐことをお勧めします。 マルチスレッド保護を設定するには、まず ID3D11DeviceQueryInterface を呼び出して、ID3D10Multithread ポインターを取得します。 次に ID3D10Multithread::SetMultithreadProtected を呼び出し、bMTProtecttrue を渡します。

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー mfobjects.h (Mfidl.h を含む)

こちらもご覧ください

IMFDXGIDeviceManager