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
플래그 [in]: 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 |
대상 플랫폼 | 바탕 화면 |
헤더 | d3d10umddi.h(D3d10umddi.h 포함) |