PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB fungsi panggilan balik (d3dumddi.h)

Fungsi pfnSignalSynchronizationObjectCb menyisipkan sinyal pada objek sinkronisasi yang ditentukan dalam aliran DMA konteks yang ditentukan.

Sintaks

PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB Pfnd3dddiSignalsynchronizationobjectcb;

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

Parameter

hDevice

Handel ke perangkat tampilan (yaitu, konteks grafis).

unnamedParam2

pData [in]

Penunjuk ke struktur D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT yang menjelaskan objek sinkronisasi dan aliran DMA konteks tempat sinyal disiapkan.

Nilai kembali

pfnSignalSynchronizationObjectCb mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
S_OK Sinyal berhasil disiapkan.
E_INVALIDARG Parameter divalidasi dan ditentukan salah.

Fungsi ini mungkin juga mengembalikan nilai HRESULT lainnya.

Keterangan

Catatan Direct3D Versi 11: Untuk informasi selengkapnya tentang cara driver memanggil pfnSignalSynchronizationObjectCb, lihat Perubahan dari Direct3D 10.

Contoh

Contoh kode berikut menunjukkan cara menyisipkan sinyal pada objek sinkronisasi.

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

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows Vista dan versi yang lebih baru dari sistem operasi Windows.
Target Platform Desktop
Header d3dumddi.h (termasuk D3dumddi.h)

Lihat juga

D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT