Compartir a través de


Método IDXGIOutput1::D uplicateOutput (dxgi1_2.h)

Crea una interfaz de duplicación de escritorio a partir de la interfaz IDXGIOutput1 que representa una salida del adaptador.

Sintaxis

HRESULT DuplicateOutput(
  [in]  IUnknown               *pDevice,
  [out] IDXGIOutputDuplication **ppOutputDuplication
);

Parámetros

[in] pDevice

Puntero a la interfaz de dispositivo direct3D que puede usar para procesar la imagen de escritorio. Este dispositivo debe crearse a partir del adaptador al que está conectada la salida.

[out] ppOutputDuplication

Puntero a una variable que recibe la nueva interfaz IDXGIOutputDuplication .

Valor devuelto

DuplicateOutput devuelve:

  • S_OK si DuplicateOutput creó correctamente la interfaz de duplicación de escritorio.
  • E_INVALIDARG por una de las siguientes razones:
    • El dispositivo especificado (pDevice) no es válido, no se creó en el adaptador correcto o no se creó a partir de IDXGIFactory1 (o una versión posterior de una interfaz de fábrica DXGI que hereda de IDXGIFactory1).
    • La aplicación que realiza la llamada ya está duplicando esta salida de escritorio.
  • E_ACCESSDENIED si la aplicación no tiene privilegios de acceso a la imagen de escritorio actual. Por ejemplo, solo una aplicación que se ejecuta en LOCAL_SYSTEM puede acceder al escritorio seguro.
  • DXGI_ERROR_UNSUPPORTED si la interfaz IDXGIOutputDuplication creada no admite el escenario o el modo de escritorio actual. Por ejemplo, no se admiten los modos de escritorio 8bpp y no DWM. Si Se produce un error en DuplicateOutput con DXGI_ERROR_UNSUPPORTED, la aplicación puede esperar la notificación del sistema de los conmutadores de escritorio y los cambios en el modo y, a continuación, llamar a DuplicateOutput de nuevo después de que se produzca dicha notificación. Para obtener más información, consulte EVENT_SYSTEM_DESKTOPSWITCH y notificación de cambio de modo (WM_DISPLAYCHANGE).
  • DXGI_ERROR_NOT_CURRENTLY_AVAILABLE si DXGI alcanzó el límite en el número máximo de aplicaciones de duplicación simultáneas (valor predeterminado de cuatro). Por lo tanto, la aplicación que llama no puede crear interfaces de duplicación de escritorio hasta que se cierren las demás aplicaciones.
  • DXGI_ERROR_SESSION_DISCONNECTED si se produjo un error en DuplicateOutput porque la sesión está desconectada actualmente.
  • Otros códigos de error se describen en el tema DXGI_ERROR .

Actualización de la plataforma para Windows 7: En Windows 7 o Windows Server 2008 R2 con la actualización de plataforma para Windows 7 instalada, DuplicateOutput produce un error con E_NOTIMPL. Para obtener más información sobre la actualización de plataforma para Windows 7, consulta Actualización de plataforma para Windows 7.

Comentarios

Si una aplicación desea duplicar todo el escritorio, debe crear una interfaz de duplicación de escritorio en cada salida activa del escritorio. Esta interfaz no proporciona una manera explícita de sincronizar el tiempo de cada imagen de salida. En su lugar, la aplicación debe usar la marca de tiempo de cada salida y, a continuación, determinar cómo combinar las imágenes.

Para que DuplicateOutput se realice correctamente, debe crear pDevice a partir de IDXGIFactory1 o una versión posterior de una interfaz de fábrica DXGI que herede de IDXGIFactory1.

Si el modo actual es un modo estéreo, la interfaz de duplicación de escritorio proporciona la imagen solo para la imagen estéreo izquierda.

De forma predeterminada, solo cuatro procesos pueden usar una interfaz IDXGIOutputDuplication al mismo tiempo dentro de una sola sesión. Un proceso solo puede tener una interfaz de duplicación de escritorio en una sola salida de escritorio; Sin embargo, ese proceso puede tener una interfaz de duplicación de escritorio para cada salida que forme parte del escritorio.

Para mejorar el rendimiento, considere la posibilidad de usar DuplicateOutput1.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 y Actualización de plataforma para Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 y actualización de plataforma para Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado dxgi1_2.h
Library Dxgi.lib

Consulte también

DuplicateOutput1

IDXGIOutput1