IMFDXGIDeviceManager::GetVideoService 方法 (mfobjects.h)

查询 Microsoft Direct3D 设备以获取接口。

语法

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

参数

[in] hDevice

Direct3D 设备的句柄。 若要获取设备句柄,请调用 IMFDXGIDeviceManager::OpenDeviceHandle

[in] riid

所请求的接口的接口标识符 (IID)。 Direct3D 设备支持以下接口:

  • ID3D11Device。 若要获取指向 Direct3D11 设备的指针,请使用 IID_ID3D11Device 作为 riid
  • ID3D11VideoDevice。 若要获取指向 Direct3D11 视频设备的指针,请使用 IID_ID3D11VideoDevice 作为 riid

[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 基本显示适配器。

注解

如果该方法返回 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