PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB función de devolución de llamada (d3dumddi.h)

La función pfnSignalSynchronizationObjectCb inserta una señal en los objetos de sincronización especificados en el flujo DMA de contexto especificado.

Sintaxis

PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB Pfnd3dddiSignalsynchronizationobjectcb;

HRESULT Pfnd3dddiSignalsynchronizationobjectcb(
  HANDLE hDevice,
  const D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT *unnamedParam2
)
{...}

Parámetros

hDevice

Identificador de un dispositivo de visualización (es decir, el contexto de gráficos).

unnamedParam2

pData [in]

Puntero a una estructura de D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT que describe los objetos de sincronización y el flujo DMA de contexto en el que se configura la señalización.

Valor devuelto

pfnSignalSynchronizationObjectCb devuelve uno de los siguientes valores:

Código devuelto Descripción
S_OK La señalización se configuró correctamente.
E_INVALIDARG Los parámetros se validaron y determinaron que son incorrectos.

Esta función también podría devolver otros valores HRESULT.

Comentarios

Nota de Direct3D versión 11: Para obtener más información sobre cómo el controlador llama a pfnSignalSynchronizationObjectCb, vea Cambios de Direct3D 10.

Ejemplos

En el ejemplo de código siguiente se muestra cómo insertar una señal en los objetos de sincronización.

HRESULT CD3DContext::SyncEngines(DWORD dwEngineReleasingControl, DWORD dwEngineAcquiringControl) {
    HRESULT hr;
    D3DDDICB_WAITFORSYNCHRONIZATIONOBJECT   sWaitObject;
    D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT    sSignalObject;

    sSignalObject.hContext = m_sContexts[dwEngineReleasingControl].hContext;
    sSignalObject.ObjectCount = 1;
    sSignalObject.ObjectHandleArray[0] = m_hEngineSyncObject;
    hr = m_d3dCallbacks.pfnSignalSynchronizationObjectCb(m_hD3D, &sSignalObject);
    if (FAILED(hr)) {
        DBG_BREAK;
        return hr;
    }
    sWaitObject.hContext = m_sContexts[dwEngineAcquiringControl].hContext;
    sWaitObject.ObjectCount = 1;
    sWaitObject.ObjectHandleArray[0] = m_hEngineSyncObject;
    hr = m_d3dCallbacks.pfnWaitForSynchronizationObjectCb(m_hD3D, &sWaitObject);
    if (FAILED(hr)) {
        DBG_BREAK;        
    }
    return hr;
}

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Escritorio
Encabezado d3dumddi.h (incluya D3dumddi.h)

Consulte también

D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT