Condividi tramite


Metodo IDirect3DDeviceManager9::GetVideoService (dxva2api.h)

Ottiene un'interfaccia del servizio DIRECTX Video Acceleration (DXVA).

Sintassi

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

Parametri

[in] hDevice

Handle a un dispositivo Direct3D. Per ottenere un handle del dispositivo, chiamare IDirect3DDeviceManager9::OpenDeviceHandle.

[in] riid

Identificatore di interfaccia (IID) dell'interfaccia richiesta. Il dispositivo Direct3D può supportare le interfacce del servizio DXVA seguenti:

[out] ppService

Riceve un puntatore all'interfaccia richiesta. Il chiamante deve rilasciare l'interfaccia.

Valore restituito

Il metodo restituisce un HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.

Codice restituito Descrizione
S_OK
Il metodo è riuscito.
DXVA2_E_NEW_VIDEO_DEVICE
L'handle del dispositivo non è valido.
DXVA2_E_NOT_AVAILABLE
Il dispositivo Direct3D non supporta l'accelerazione video.
DXVA2_E_NOT_INITIALIZED
Gestione dispositivi Direct3D non è stata inizializzata. Il proprietario del dispositivo deve chiamare IDirect3DDeviceManager9::ResetDevice.
E_HANDLE
L'handle specificato non è un handle del dispositivo Direct3D.

Commenti

Se il metodo restituisce DXVA2_E_NEW_VIDEO_DEVICE, chiamare IDirect3DDeviceManager9::CloseDeviceHandle per chiudere l'handle e quindi chiamare di nuovo OpenDeviceHandle per ottenere un nuovo handle. Il metodo IDirect3DDeviceManager9::ResetDevice invalida tutti gli handle di dispositivo aperti.

Esempio

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

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione dxva2api.h

Vedi anche

Elaborazione video DXVA

Gestione dispositivi Direct3D

Accelerazione video DirectX 2.0

IDirect3DDeviceManager9