Compartilhar via


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

Obtém uma interface de serviço de Aceleração de Vídeo (DXVA) do DirectX.

Sintaxe

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

Parâmetros

[in] hDevice

Um identificador para um dispositivo Direct3D. Para obter um identificador de dispositivo, chame IDirect3DDeviceManager9::OpenDeviceHandle.

[in] riid

O IID (identificador de interface) da interface solicitada. O dispositivo Direct3D pode dar suporte às seguintes interfaces de serviço DXVA:

[out] ppService

Recebe um ponteiro para a interface solicitada. O chamador deve liberar a interface .

Valor retornado

O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
DXVA2_E_NEW_VIDEO_DEVICE
O identificador do dispositivo é inválido.
DXVA2_E_NOT_AVAILABLE
O dispositivo Direct3D não dá suporte à aceleração de vídeo.
DXVA2_E_NOT_INITIALIZED
O gerenciador de dispositivos Direct3D não foi inicializado. O proprietário do dispositivo deve chamar IDirect3DDeviceManager9::ResetDevice.
E_HANDLE
O identificador especificado não é um identificador de dispositivo Direct3D.

Comentários

Se o método retornar DXVA2_E_NEW_VIDEO_DEVICE, chame IDirect3DDeviceManager9::CloseDeviceHandle para fechar o identificador e, em seguida, chame OpenDeviceHandle novamente para obter um novo identificador. O método IDirect3DDeviceManager9::ResetDevice invalida todos os identificadores de dispositivo abertos.

Exemplos

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 com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho dxva2api.h

Confira também

Processamento de vídeo DXVA

Direct3D Gerenciador de Dispositivos

Aceleração de vídeo do DirectX 2.0

IDirect3DDeviceManager9