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 è configurato il segnale.

Valore restituito

pfnSignalSynchronizationObjectCb restituisce uno dei valori seguenti:

Codice restituito Descrizione
S_OK Il segnale è stato configurato correttamente.
E_INVALIDARG I parametri sono stati convalidati e determinati per essere non corretti.

Questa funzione potrebbe anche restituire altri valori HRESULT.

Commenti

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

Esempio

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

Requisiti

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)

Vedi anche

D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT