共用方式為


PFND3D10DDI_QUERYGETDATA回呼函式 (d3d10umddi.h)

QueryGetData 函式會輪詢查詢作業的狀態。

語法

PFND3D10DDI_QUERYGETDATA Pfnd3d10ddiQuerygetdata;

void Pfnd3d10ddiQuerygetdata(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D10DDI_HQUERY unnamedParam2,
  VOID *unnamedParam3,
  UINT DataSize,
  UINT unnamedParam5
)
{...}

參數

unnamedParam1

hDevice [in]:顯示裝置的句柄(圖形內容)。

unnamedParam2

hQuery [in]:要輪詢之查詢物件的句柄。

unnamedParam3

pData [out]:記憶體區域的指標,可從查詢作業接收數據。 使用者模式顯示驅動程式可以將 pData 設為 NULL,並將 DataSize 參數設定為零。 如果 pData 為 NULL,QueryGetData 可以指出查詢作業的狀態(例如,查詢作業是否已完成)。

DataSize

[out]pData 參數指向的查詢數據大小,以位元組為單位。 使用者模式顯示驅動程式可以將 DataSize 設定為零,並將 pData 設定為 NULL。 如果 DataSize 為零,QueryGetData 可以指出查詢作業的狀態(例如,透過傳回碼)。

unnamedParam5

旗標 [in]:D 3D10_DDI_GET_DATA_FLAG旗標。

傳回值

沒有

言論

驅動程式可以使用 pfnSetErrorCb 回呼函式來設定錯誤碼。

Microsoft Direct3D 運行時間呼叫使用者模式顯示驅動程式的 QueryEnd 函式,將查詢作業轉換為「已發出」狀態之後,運行時間可以呼叫 QueryGetData,以判斷查詢作業是否仍處於「已發出」狀態(DXGI_DDI_ERR_WASSTILLDRAWING),或已轉換為「訊號」狀態(S_OK)。 如果查詢作業處於「訊號」狀態,QueryGetData 可以在 pData 參數中傳回查詢數據;否則,pData 不變。 驅動程式可以呼叫 pfnSetErrorCb ,以指出查詢作業的狀態。

運行時間無法透過呼叫 SetPredication 函式,呼叫以 D3D10_QUERY_MISCFLAG_PREDICATEHINT 建立的述詞 QueryGetData

如果查詢作業會處理仍位於部分命令緩衝區中的工作,則驅動程式預設應該終止並提交部分命令緩衝區。 不過,如果運行時間在 Flags 參數中指定了D3D10_DDI_GET_DATA_DO_NOT_FLUSH旗標,則驅動程式不應該終止並提交緩衝區。 如果運行時間在 Flags 參數中傳遞D3D10_DDI_GET_DATA_DO_NOT_FLUSH旗標,而且如果查詢作業處理仍位於部分命令緩衝區的工作,則驅動程式可以 呼叫 pfnSetErrorCb,只設定DXGI_DDI_ERR_WASSTILLDRAWING錯誤碼。

當運行時間呼叫 QueryGetData 以檢查查詢完成時,驅動程式可以在呼叫 pfnSetErrorCb中傳遞DXGI_DDI_ERR_WASSTILLDRAWING,以指出查詢尚未完成。 驅動程式也可以在呼叫 pfnSetErrorCb 中傳遞D3DDDIERR_DEVICEREMOVED。 Direct3D 運行時間會判斷任何其他錯誤都很重要。

要求

要求 價值
最低支援的用戶端 Windows Vista
目標平臺 桌面
標頭 d3d10umddi.h (包括 D3d10umddi.h)

另請參閱

CheckCounter

D3D10DDI_DEVICEFUNCS

QueryEnd

SetPredication

pfnSetErrorCb