IDirect3DDeviceManager9::GetVideoService 方法 (dxva2api.h)
获取 DirectX 视频加速 (DXVA) 服务接口。
语法
HRESULT GetVideoService(
[in] HANDLE hDevice,
[in] REFIID riid,
[out] void **ppService
);
参数
[in] hDevice
Direct3D 设备的句柄。 若要获取设备句柄,请调用 IDirect3DDeviceManager9::OpenDeviceHandle。
[in] riid
所请求的接口的接口标识符 (IID)。 Direct3D 设备可能支持以下 DXVA 服务接口:
[out] ppService
接收指向所请求接口的指针。 调用方必须释放接口。
返回值
该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
设备句柄无效。 |
|
Direct3D 设备不支持视频加速。 |
|
未初始化 Direct3D 设备管理器。 设备的所有者必须调用 IDirect3DDeviceManager9::ResetDevice。 |
|
指定的句柄不是 Direct3D 设备句柄。 |
备注
如果方法返回 DXVA2_E_NEW_VIDEO_DEVICE,请调用 IDirect3DDeviceManager9::CloseDeviceHandle 以关闭句柄,然后再次调用 OpenDeviceHandle 以获取新句柄。 IDirect3DDeviceManager9::ResetDevice 方法使所有打开的设备句柄失效。
示例
HRESULT GetVideoProcessorService(
IDirect3DDeviceManager9 *pDeviceManager,
IDirectXVideoProcessorService **ppVPService
)
{
*ppVPService = NULL;
HANDLE hDevice;
HRESULT hr = pDeviceManager->OpenDeviceHandle(&hDevice);
if (SUCCEEDED(hr))
{
// Get the video processor service
HRESULT hr2 = pDeviceManager->GetVideoService(
hDevice,
IID_PPV_ARGS(ppVPService)
);
// Close the device handle.
hr = pDeviceManager->CloseDeviceHandle(hDevice);
if (FAILED(hr2))
{
hr = hr2;
}
}
if (FAILED(hr))
{
SafeRelease(ppVPService);
}
return hr;
}
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | dxva2api.h |