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 |