Compartir a través de


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 puede devolver otros valores HRESULT.

Observaciones

Direct3D versión 11 Nota: Para obtener más información sobre cómo llama el controlador 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 Valor
cliente mínimo admitido Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.
de la plataforma de destino de Escritorio
encabezado de d3dumddi.h (incluya D3dumddi.h)

Consulte también

D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT