PFND3D10DDI_QUERYGETDATA Rückruffunktion (d3d10umddi.h)

Die QueryGetData-Funktion fragt den Status eines Abfragevorgangs ab.

Syntax

PFND3D10DDI_QUERYGETDATA Pfnd3d10ddiQuerygetdata;

void Pfnd3d10ddiQuerygetdata(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D10DDI_HQUERY unnamedParam2,
  VOID *unnamedParam3,
  UINT DataSize,
  UINT unnamedParam5
)
{...}

Parameter

unnamedParam1

hDevice [in]: Ein Handle für das Anzeigegerät (Grafikkontext).

unnamedParam2

hQuery [in]: Ein Handle für das Abfrageobjekt, das abgefragt werden soll.

unnamedParam3

pData [out]: Ein Zeiger auf einen Speicherbereich, der die Daten aus einem Abfragevorgang empfängt. Der Anzeigetreiber für den Benutzermodus kann pData auf NULL und den DataSize-Parameter auf Null festlegen. Wenn pData NULL ist, kann QueryGetData den Status des Abfragevorgangs angeben (z. B. ob der Abfragevorgang abgeschlossen ist).

DataSize

[out] Die Größe der Abfragedaten in Bytes, auf die der pData-Parameter verweist. Der Anzeigetreiber für den Benutzermodus kann DataSize auf Null und pData auf NULL festlegen. Wenn DataSize null ist, kann QueryGetData den Status des Abfragevorgangs angeben (z. B. durch Rückgabecodes).

unnamedParam5

Flags [in]: D3D10_DDI_GET_DATA_FLAG Flags.

Rückgabewert

Keine

Bemerkungen

Der Treiber kann die Rückruffunktion pfnSetErrorCb verwenden, um einen Fehlercode festzulegen.

Nachdem die Microsoft Direct3D-Runtime die QueryEnd-Funktion des Benutzermodusanzeigetreibers aufgerufen hat, um einen Abfragevorgang in den Status "ausgestellt" zu überstellen, kann die Laufzeit QueryGetData aufrufen, um zu bestimmen, ob sich der Abfragevorgang noch im Status "ausgestellt" (DXGI_DDI_ERR_WASSTILLDRAWING) befindet oder in den Zustand "Signaled" (S_OK) gewechselt ist. Wenn sich der Abfragevorgang im Zustand "signalisiert" befindet, kann QueryGetData die Abfragedaten im pData-Parameter zurückgeben. Andernfalls bleibt pData unverändert. Der Treiber kann pfnSetErrorCb aufrufen, um den Status des Abfragevorgangs anzugeben.

Die Laufzeit kann QueryGetData nicht mit einem Prädikat aufrufen, das mit D3D10_QUERY_MISCFLAG_PREDICATEHINT über einen Aufruf der SetPredication-Funktion erstellt wurde.

Wenn ein Abfragevorgang Arbeit verarbeitet, die sich noch in Teilbefehlspuffern befindet, sollte der Treiber standardmäßig beenden und die Teilbefehlspuffer übermitteln. Der Treiber sollte die Puffer jedoch nicht beenden und übermitteln, wenn die Laufzeit das flag D3D10_DDI_GET_DATA_DO_NOT_FLUSH im Flags-Parameter angegeben hat. Wenn die Laufzeit das flag D3D10_DDI_GET_DATA_DO_NOT_FLUSH im Flags-Parameter übergeben hat und der Abfragevorgang Arbeit verarbeitet, die sich noch in partiellen Befehlspuffern befindet, kann der Treiber pfnSetErrorCb aufrufen, um nur den DXGI_DDI_ERR_WASSTILLDRAWING Fehlercode festzulegen.

Wenn die Runtime QueryGetData aufruft, um den Abschluss der Abfrage zu überprüfen, kann der Treiber DXGI_DDI_ERR_WASSTILLDRAWING in einem Aufruf von pfnSetErrorCb übergeben, um anzugeben, dass die Abfrage noch nicht abgeschlossen ist. Der Treiber kann auch D3DDDIERR_DEVICEREMOVED in einem Aufruf von pfnSetErrorCb übergeben. Die Direct3D-Runtime bestimmt, dass alle anderen Fehler kritisch sind.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Zielplattform Desktop
Kopfzeile d3d10umddi.h (include D3d10umddi.h)

Weitere Informationen

CheckCounter

D3D10DDI_DEVICEFUNCS

QueryEnd

SetPredication

pfnSetErrorCb