Compartilhar via


PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB função de retorno de chamada (d3dumddi.h)

A função pfnSignalSynchronizationObjectCb insere um sinal nos objetos de sincronização especificados no fluxo de DMA de contexto especificado.

Sintaxe

PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB Pfnd3dddiSignalsynchronizationobjectcb;

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

Parâmetros

hDevice

Um identificador para um dispositivo de exibição (ou seja, o contexto gráfico).

unnamedParam2

pData [in]

Um ponteiro para uma estrutura D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT que descreve os objetos de sincronização e o fluxo de DMA de contexto em que a sinalização está configurada.

Retornar valor

pfnSignalSynchronizationObjectCb retorna um dos seguintes valores:

Código de retorno Descrição
S_OK A sinalização foi configurada com êxito.
E_INVALIDARG Os parâmetros foram validados e determinados como incorretos.

Essa função também pode retornar outros valores HRESULT.

Comentários

Observação do Direct3D versão 11: Para obter mais informações sobre como o driver chama pfnSignalSynchronizationObjectCb, consulte Alterações do Direct3D 10.

Exemplos

O exemplo de código a seguir mostra como inserir um sinal em objetos de sincronização.

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 com suporte Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows.
Plataforma de Destino Área de Trabalho
Cabeçalho d3dumddi.h (inclua D3dumddi.h)

Confira também

D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT