Freigeben über


IDirect3DDeviceManager9::GetVideoService-Methode (dxva2api.h)

Ruft eine DxVA-Dienstschnittstelle (DirectX Video Acceleration) ab.

Syntax

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

Parameter

[in] hDevice

Ein Handle für ein Direct3D-Gerät. Um ein Gerätehandle abzurufen, rufen Sie IDirect3DDeviceManager9::OpenDeviceHandle auf.

[in] riid

Der Schnittstellenbezeichner (Interface Identifier, IID) der angeforderten Schnittstelle. Das Direct3D-Gerät unterstützt möglicherweise die folgenden DXVA-Dienstschnittstellen:

[out] ppService

Empfängt einen Zeiger auf die angeforderte Schnittstelle. Der Aufrufer muss die Schnittstelle freigeben.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
DXVA2_E_NEW_VIDEO_DEVICE
Das Gerätehandle ist ungültig.
DXVA2_E_NOT_AVAILABLE
Das Direct3D-Gerät unterstützt keine Videobeschleunigung.
DXVA2_E_NOT_INITIALIZED
Der Direct3D-Geräte-Manager wurde nicht initialisiert. Der Besitzer des Geräts muss IDirect3DDeviceManager9::ResetDevice aufrufen.
E_HANDLE
Der angegebene Handle ist kein Direct3D-Gerätehandle.

Hinweise

Wenn die Methode DXVA2_E_NEW_VIDEO_DEVICE zurückgibt, rufen Sie IDirect3DDeviceManager9::CloseDeviceHandle auf, um das Handle zu schließen, und rufen Sie dann OpenDeviceHandle erneut auf, um ein neues Handle abzurufen. Mit der IDirect3DDeviceManager9::ResetDevice-Methode werden alle geöffneten Gerätehandles ungültig.

Beispiele

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

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile dxva2api.h

Weitere Informationen

DXVA-Videoverarbeitung

Direct3D-Geräte-Manager

DirectX VideoBeschleunigung 2.0

IDirect3DDeviceManager9