Partager via


PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB fonction de rappel (d3dumddi.h)

La fonction pfnSignalSynchronizationObjectCb insère un signal sur les objets de synchronisation spécifiés dans le flux DMA de contexte spécifié.

Syntaxe

PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB Pfnd3dddiSignalsynchronizationobjectcb;

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

Paramètres

hDevice

Handle vers un appareil d’affichage (autrement dit, le contexte graphique).

unnamedParam2

pData [in]

Pointeur vers une structure D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT qui décrit les objets de synchronisation et le flux DMA de contexte sur lequel la signalisation est configurée.

Valeur de retour

pfnSignalSynchronizationObjectCb retourne l’une des valeurs suivantes :

Retourner le code Description
S_OK La signalisation a été correctement configurée.
E_INVALIDARG Les paramètres ont été validés et déterminés comme incorrects.

Cette fonction peut également retourner d’autres valeurs HRESULT.

Remarques

Direct3D Version 11 Remarque : Pour plus d’informations sur la façon dont le pilote appelle pfnSignalSynchronizationObjectCb, consultez Modifications de Direct3D 10.

Exemples

L’exemple de code suivant montre comment insérer un signal sur des objets de synchronisation.

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

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows.
plateforme cible Bureau
d’en-tête d3dumddi.h (include D3dumddi.h)

Voir aussi

D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT