共用方式為


PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB回呼函式 (d3dumddi.h)

pfnSignalSynchronizationObjectCb 函式會在指定的內容 DMA 數據流中,於指定的同步處理物件上插入訊號。

語法

PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB Pfnd3dddiSignalsynchronizationobjectcb;

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

參數

hDevice

顯示裝置 (的句柄,也就是圖形內容) 。

unnamedParam2

pData [in]

D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT 結構的指標,描述已設定訊號的同步處理對象和內容 DMA 數據流。

傳回值

pfnSignalSynchronizationObjectCb 會傳回下列其中一個值:

傳回碼 描述
S_OK 已成功設定訊號。
E_INVALIDARG 已驗證參數,並判斷為不正確。

此函式也可能傳回其他 HRESULT 值。

備註

Direct3D 版本 11 附注: 如需驅動程式如何呼叫 pfnSignalSynchronizationObjectCb 的詳細資訊,請參閱 Direct3D 10 的變更

範例

下列程式代碼範例示範如何在同步處理物件上插入訊號。

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

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。
目標平台 桌面
標頭 d3dumddi.h (include D3dumddi.h)

另請參閱

D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT