Compartir a través de


Método IDirect3DDeviceManager9::GetVideoService (dxva2api.h)

Obtiene una interfaz de servicio de Aceleración de vídeo DirectX (DXVA).

Sintaxis

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

Parámetros

[in] hDevice

Identificador de un dispositivo Direct3D. Para obtener un identificador de dispositivo, llame a IDirect3DDeviceManager9::OpenDeviceHandle.

[in] riid

Identificador de interfaz (IID) de la interfaz solicitada. El dispositivo Direct3D podría admitir las siguientes interfaces de servicio DXVA:

[out] ppService

Recibe un puntero a la interfaz solicitada. El autor de la llamada debe liberar la interfaz .

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
DXVA2_E_NEW_VIDEO_DEVICE
El identificador del dispositivo no es válido.
DXVA2_E_NOT_AVAILABLE
El dispositivo Direct3D no admite la aceleración de vídeo.
DXVA2_E_NOT_INITIALIZED
El administrador de dispositivos direct3D no se inicializó. El propietario del dispositivo debe llamar a IDirect3DDeviceManager9::ResetDevice.
E_HANDLE
El identificador especificado no es un identificador de dispositivo Direct3D.

Comentarios

Si el método devuelve DXVA2_E_NEW_VIDEO_DEVICE, llame a IDirect3DDeviceManager9::CloseDeviceHandle para cerrar el identificador y, a continuación, llame a OpenDeviceHandle de nuevo para obtener un nuevo identificador. El método IDirect3DDeviceManager9::ResetDevice invalida todos los identificadores de dispositivo abiertos.

Ejemplos

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;
}

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado dxva2api.h

Consulte también

Procesamiento de vídeo DXVA

Direct3D Administrador de dispositivos

Aceleración de vídeo de DirectX 2.0

IDirect3DDeviceManager9