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 パラメーターを 0 に設定できます。 pData が NULL の場合、QueryGetData はクエリ操作の状態 (クエリ操作が完了したかどうかなど) を示すことができます。
DataSize
[out] pData パラメーターが指すクエリ データのサイズ (バイト単位)。 ユーザー モードのディスプレイ ドライバーは 、DataSize を 0 に設定し、 pData を NULL に設定できます。 DataSize が 0 の場合、QueryGetData はクエリ操作の状態を示すことができます (たとえば、リターン コードを使用)。
unnamedParam5
フラグ [入力]: フラグを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 |
対象プラットフォーム | デスクトップ |
Header | d3d10umddi.h (D3d10umddi.h を含む) |