次の方法で共有


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) に移行したかを判断できます。 クエリ操作が "シグナル化" 状態の場合、 QueryGetDatapData パラメーターでクエリ データを返すことができます。それ以外の場合、 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 を含む)

こちらもご覧ください

CheckCounter

D3D10DDI_DEVICEFUNCS

QueryEnd

SetPredication

pfnSetErrorCb