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 pour un périphérique d’affichage (c’est-à-dire le contexte graphique).

unnamedParam2

pData [in]

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

Valeur retournée

pfnSignalSynchronizationObjectCb retourne l’une des valeurs suivantes :

Code de retour 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

Remarque de Direct3D version 11 : 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;
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête d3dumddi.h (inclure D3dumddi.h)

Voir aussi

D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT