共用方式為


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 參數設定為零。 如果 pDataNULL,QueryGetData 可以指出查詢作業的狀態 (例如,查詢作業是否已完成) 。

DataSize

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

unnamedParam5

旗標 [in]: D3D10_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 (include D3d10umddi.h)

另請參閱

CheckCounter

D3D10DDI_DEVICEFUNCS

QueryEnd

SetPredication

pfnSetErrorCb