Condividi tramite


PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB funzione di callback (d3dumddi.h)

La funzione pfnSignalSynchronizationObjectCb inserisce un segnale negli oggetti di sincronizzazione specificati nel flusso DMA di contesto specificato.

Sintassi

PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB Pfnd3dddiSignalsynchronizationobjectcb;

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

Parametri

hDevice

Handle per un dispositivo di visualizzazione, ovvero il contesto grafico.

unnamedParam2

pData [in]

Puntatore a una struttura D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT che descrive gli oggetti di sincronizzazione e il flusso DMA di contesto su cui è configurata la segnalazione.

Valore restituito

pfnSignalSynchronizationObjectCb restituisce uno dei valori seguenti:

Codice restituito Descrizione
S_OK La segnalazione è stata configurata correttamente.
E_INVALIDARG I parametri sono stati convalidati e sono stati determinati in modo che non siano corretti.

Questa funzione potrebbe restituire anche altri valori HRESULT.

Osservazioni

Direct3D versione 11 Nota: Per altre informazioni su come il driver chiama pfnSignalSynchronizationObjectCb, vedere modifiche da Direct3D 10.

Esempi

Nell'esempio di codice seguente viene illustrato come inserire un segnale negli oggetti di sincronizzazione.

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;
}

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows.
piattaforma di destinazione Desktop
intestazione d3dumddi.h (include D3dumddi.h)

Vedere anche

D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT