Partager via


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

Obtient une interface de service DirectX Video Acceleration (DXVA).

Syntaxe

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

Paramètres

[in] hDevice

Handle pour un appareil Direct3D. Pour obtenir un handle d’appareil, appelez IDirect3DDeviceManager9::OpenDeviceHandle.

[in] riid

Identificateur d'interface (IID) de l'interface demandée. L’appareil Direct3D peut prendre en charge les interfaces de service DXVA suivantes :

[out] ppService

Reçoit un pointeur vers l’interface demandée. L’appelant doit libérer l’interface.

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.

Code de retour Description
S_OK
S_OK
DXVA2_E_NEW_VIDEO_DEVICE
Le handle d’appareil n’est pas valide.
DXVA2_E_NOT_AVAILABLE
L’appareil Direct3D ne prend pas en charge l’accélération vidéo.
DXVA2_E_NOT_INITIALIZED
Le gestionnaire de périphériques Direct3D n’a pas été initialisé. Le propriétaire de l’appareil doit appeler IDirect3DDeviceManager9::ResetDevice.
E_HANDLE
Le handle spécifié n’est pas un handle d’appareil Direct3D.

Notes

Si la méthode retourne DXVA2_E_NEW_VIDEO_DEVICE, appelez IDirect3DDeviceManager9::CloseDeviceHandle pour fermer le handle, puis appelez à nouveau OpenDeviceHandle pour obtenir un nouveau handle. La méthode IDirect3DDeviceManager9::ResetDevice invalide tous les descripteurs d’appareil ouverts.

Exemples

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

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête dxva2api.h

Voir aussi

Traitement vidéo DXVA

Gestionnaire de périphériques Direct3D

Accélération vidéo DirectX 2.0

IDirect3DDeviceManager9