次の方法で共有


IMFDXGIDeviceManager::GetVideoService メソッド (mfobjects.h)

インターフェイスについて Microsoft Direct3D デバイスに対してクエリを実行します。

構文

HRESULT GetVideoService(
  [in]  HANDLE hDevice,
  [in]  REFIID riid,
  [out] void   **ppService
);

パラメーター

[in] hDevice

Direct3D デバイスへのハンドル。 デバイス ハンドルを取得するには、 IMFDXGIDeviceManager::OpenDeviceHandle を呼び出します。

[in] riid

要求したインターフェイスのインターフェイス ID (IID: Interface Identifier)。 Direct3D デバイスでは、次のインターフェイスがサポートされています。

  • ID3D11Device。 Direct3D11 デバイスへのポインターを取得するには、riid として IID_ID3D11Deviceを使用します。
  • ID3D11VideoDevice。 Direct3D11 ビデオ デバイスへのポインターを取得するには、riid として IID_ID3D11VideoDeviceを使用します。

[out] ppService

要求されたインターフェイスへのポインターを受け取ります。 呼び出し元はインターフェイスを解放する必要があります。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

リターン コード 説明
S_OK
正常終了しました。
E_HANDLE
指定したハンドルは Direct3D デバイス ハンドルではありません。
MF_E_DXGI_DEVICE_NOT_INITIALIZED
DXGI デバイス マネージャーが初期化されませんでした。 デバイスの所有者は、 IMFDXGIDeviceManager::ResetDevice を呼び出す必要があります。
MF_E_DXGI_NEW_VIDEO_DEVICE
デバイス ハンドルが無効です。
E_NOINTERFACE
ID3D11VideoDevice が指定され、作成された D3D デバイスが参照ラスタライザーまたは WARP を使用している場合。 または、ハードウェア デバイスであり、Microsoft Basic ディスプレイ アダプターを使用しています。

注釈

メソッドが MF_E_DXGI_NEW_VIDEO_DEVICEを返す場合は、 IMFDXGIDeviceManager::CloseDeviceHandle を呼び出してハンドルを閉じ、もう一度 OpenDeviceHandle を呼び出して新しいハンドルを取得します。 IMFDXGIDeviceManager::ResetDevice メソッドは、開いているすべてのデバイス ハンドルを無効にします。

詳細については、「 Media Foundation での Direct3D 11 ビデオ デコードのサポート」を参照してください。

要件

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

こちらもご覧ください

IMFDXGIDeviceManager