Compartir a través de


Método IDXGIDevice2::EnqueueSetEvent (dxgi1_2.h)

Vacía los comandos de representación pendientes y establece el objeto de evento especificado en el estado señalado después de que se completen todos los comandos de representación enviados anteriormente.

Sintaxis

HRESULT EnqueueSetEvent(
  [in] HANDLE hEvent
);

Parámetros

[in] hEvent

Identificador del objeto de evento. La función CreateEvent o OpenEvent devuelve este identificador. Se admiten todos los tipos de objetos de evento (restablecimiento manual, restablecimiento automático, etc.).

El identificador debe tener el derecho de acceso EVENT_MODIFY_STATE. Para obtener más información sobre los derechos de acceso, vea Synchronization Object Security and Access Rights.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente; de lo contrario, devuelve uno de los valores siguientes:

  • E_OUTOFMEMORY si no hay suficiente memoria disponible para completar la operación.
  • E_INVALIDARG si se validó el parámetro y se determinó que es incorrecto.
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, Se produce un error en EnqueueSetEvent con E_NOTIMPL. Para obtener más información sobre platform Update para Windows 7, consulta Platform Update para Windows 7.

Comentarios

EnqueueSetEvent llama a la función SetEvent en el objeto de evento después de que se completen todos los comandos de representación enviados previamente o se quite el dispositivo.

Una vez que una aplicación llama a EnqueueSetEvent, puede llamar inmediatamente a la función WaitForSingleObject para ponerse en suspensión hasta que se completen los comandos de representación.

No puede usar EnqueueSetEvent para determinar la finalización del trabajo asociada a la presentación (IDXGISwapChain::P resent); en su lugar, se recomienda usar IDXGISwapChain::GetFrameStatistics.

Ejemplos

En el código de ejemplo siguiente se muestra cómo usar EnqueueSetEvent.

void BlockingFinish( IDXGIDevice2* pDevice ) 
{
    // Create a manual-reset event object. 
    hEvent = CreateEvent( 
        NULL,               // default security attributes
        TRUE,               // manual-reset event
        FALSE,              // initial state is nonsignaled
        FALSE
        ); 

    if (hEvent == NULL) 
    { 
        printf("CreateEvent failed (%d)\n", GetLastError());
        return;
    }

    pDevice->EnqueueSetEvent(hEvent);    

    DWORD dwWaitResult = WaitForSingleObject( 
        hEvent, // event handle
        INFINITE);    // indefinite wait

    switch (dwWaitResult) 
    {
        // Event object was signaled
        case WAIT_OBJECT_0: 
            // Commands completed
            break; 

        // An error occurred
        default: 
            printf("Wait error (%d)\n", GetLastError()); 
            return 0; 
    }

    CloseHandle(hEvent);
}

Requisitos

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

Consulte también

IDXGIDevice2