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) |