Condividi tramite


Metodo IDXGIOutput1::D uplicateOutput (dxgi1_2.h)

Crea un'interfaccia di duplicazione desktop dall'interfaccia IDXGIOutput1 che rappresenta un output dell'adattatore.

Sintassi

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

Parametri

[in] pDevice

Puntatore all'interfaccia del dispositivo Direct3D che è possibile usare per elaborare l'immagine desktop. Questo dispositivo deve essere creato dall'adattatore a cui è connesso l'output.

[out] ppOutputDuplication

Puntatore a una variabile che riceve la nuova interfaccia IDXGIOutputDuplicazione .

Valore restituito

DuplicateOutput restituisce:

  • S_OK se DuplicateOutput ha creato correttamente l'interfaccia di duplicazione desktop.
  • E_INVALIDARG per uno dei motivi seguenti:
    • Il dispositivo specificato (pDevice) non è valido, non è stato creato nell'adattatore corretto o non è stato creato da IDXGIFactory1 (o una versione successiva di un'interfaccia factory DXGI che eredita da IDXGIFactory1).
    • L'applicazione chiamante sta già duplicando questo output desktop.
  • E_ACCESSDENIED se l'applicazione non ha privilegi di accesso all'immagine desktop corrente. Ad esempio, solo un'applicazione in esecuzione in LOCAL_SYSTEM può accedere al desktop sicuro.
  • DXGI_ERROR_UNSUPPORTED se l'interfaccia IDXGIOutputDuplica creata non supporta la modalità desktop o lo scenario corrente. Ad esempio, non sono supportate le modalità desktop 8bpp e non DWM. Se DuplicateOutput ha esito negativo con DXGI_ERROR_UNSUPPORTED, l'applicazione può attendere la notifica di sistema di commutatori desktop e modifiche alla modalità e quindi chiamare di nuovo DuplicateOutput dopo che si verifica una notifica di questo tipo. Per altre informazioni, vedere EVENT_SYSTEM_DESKTOPSWITCH e notifica delle modifiche in modalità (WM_DISPLAYCHANGE).
  • DXGI_ERROR_NOT_CURRENTLY_AVAILABLE se DXGI ha raggiunto il limite massimo di applicazioni di duplicazione simultanee (impostazione predefinita di quattro). Pertanto, l'applicazione chiamante non può creare interfacce di duplicazione desktop fino alla chiusura delle altre applicazioni.
  • DXGI_ERROR_SESSION_DISCONNECTED se DuplicateOutput non è riuscito perché la sessione è attualmente disconnessa.
  • Altri codici di errore sono descritti nell'argomento DXGI_ERROR .

Aggiornamento della piattaforma per Windows 7: In Windows 7 o Windows Server 2008 R2 con l'aggiornamento della piattaforma per Windows 7 installato, DuplicateOutput non riesce con E_NOTIMPL. Per altre informazioni sull'aggiornamento della piattaforma per Windows 7, vedere Platform Update per Windows 7.

Commenti

Se un'applicazione vuole duplicare l'intero desktop, deve creare un'interfaccia di duplicazione desktop in ogni output attivo sul desktop. Questa interfaccia non fornisce un modo esplicito per sincronizzare la tempistica di ogni immagine di output. L'applicazione deve invece usare il timestamp di ogni output e quindi determinare come combinare le immagini.

Per l'esito positivo di DuplicateOutput , è necessario creare pDevice da IDXGIFactory1 o una versione successiva di un'interfaccia factory DXGI che eredita da IDXGIFactory1.

Se la modalità corrente è una modalità stereo, l'interfaccia della duplicazione desktop fornisce l'immagine solo per l'immagine stereo sinistra.

Per impostazione predefinita, solo quattro processi possono usare un'interfaccia IDXGIOutputDuplicazione contemporaneamente all'interno di una singola sessione. Un processo può avere un'unica interfaccia di duplicazione desktop in un singolo output desktop; Tuttavia, tale processo può avere un'interfaccia di duplicazione desktop per ogni output che fa parte del desktop.

Per migliorare le prestazioni, valutare l'uso di DuplicateOutput1.

Requisiti

Requisito Valore
Client minimo supportato Windows 8 e Platform Update per Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2012 e Aggiornamento della piattaforma per Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione dxgi1_2.h
Libreria Dxgi.lib

Vedi anche

DuplicateOutput1

IDXGIOutput1