PFND3DDDI_QUERYRESOURCERESIDENCY Rückruffunktion (d3dumddi.h)

Die QueryResourceResidency-Funktion bestimmt den Wohnsitz der angegebenen Ressourcenliste.

Syntax

PFND3DDDI_QUERYRESOURCERESIDENCY Pfnd3dddiQueryresourceresidency;

HRESULT Pfnd3dddiQueryresourceresidency(
  HANDLE hDevice,
  const D3DDDIARG_QUERYRESOURCERESIDENCY *unnamedParam2
)
{...}

Parameter

hDevice

Ein Handle für das Anzeigegerät (Grafikkontext).

unnamedParam2

pData [in]

Ein Zeiger auf eine D3DDDIARG_QUERYRESOURCERESIDENCY-Struktur , die eine Liste der Ressourcen beschreibt, für die der Wohnsitz überprüft wird.

Rückgabewert

QueryResourceResidency gibt einen der folgenden Werte zurück:

Rückgabecode Beschreibung
S_OK Alle Ressourcen befinden sich im Speicher, auf den GPU zugegriffen werden kann.
S_RESIDENT_IN_SHARED_MEMORY Auf dem Datenträger befinden sich keine Zuordnungen, die die Ressourcen umfassen. Mindestens eine Zuordnung befindet sich jedoch nicht im Speicher, auf den GPU zugegriffen werden kann.
S_NOT_RESIDENT Mindestens eine Zuordnung, die die Ressourcen umfasst, befindet sich auf dem Datenträger.
E_INVALIDARG Parameter wurden überprüft und als falsch ermittelt.
E_OUTOFMEMORY QueryResourceResidency konnte keinen Speicher zuordnen, der für die Vervollständigung erforderlich ist.

Hinweise

Die Microsoft Direct3D-Runtime ruft die QueryResourceResidency-Funktion des Benutzermodustreibers für Anwendungen auf, um zu bestimmen, ob das Betriebssystem zur Ziehungszeit einen erheblichen Stillstand verursacht, wenn das System Ressourcen gpu-zugänglich machen muss. Die von QueryResourceResidency zurückgegebenen Informationen stellen eine Annäherung an die Residenz von Ressourcen dar, da die Ressourcen möglicherweise herabgestuft werden, bevor Anwendungen die Ressourcen verwenden.

Die QueryResourceResidency-Funktion des Benutzermodusanzeigetreibers muss aufruft die Funktion pfnQueryResidencyCb . Die pfnQueryResidencyCb-Funktion gibt die Residency-status einer Ressource in den Elementen des Arrays zurück, das vom pResidencyStatus-Member der D3DDDICB_QUERYRESIDENCY-Struktur angegeben wird. Wenn pfnQueryResidencyCb für eine Abfrage D3DDDI_RESIDENCYSTATUS_NOTRESIDENT zurückgibt, muss QueryResourceResidency S_NOT_RESIDENT zurückgeben. Wenn pfnQueryResidencyCb für eine Abfrage D3DDDI_RESIDENCYSTATUS_RESIDENTINSHAREDMEMORY und keine D3DDDI_RESIDENCYSTATUS_NOTRESIDENT für eine Abfrage zurückgibt, muss QueryResourceResidency S_RESIDENT_IN_SHARED_MEMORY zurückgeben. QueryResourceResidency muss nur S_OK zurückgeben, wenn alle Aufrufe von pfnQueryResidencyCb für alle Abfragen D3DDDI_RESIDENCYSTATUS_RESIDENTINGPUMEMORY zurückgeben.

Für jede Ressource, die die Runtime über einen Aufruf von QueryResourceResidency abfragt, muss der Benutzermodusanzeigetreiber ermitteln, welche Zuordnungen, die zur Ressource gehören, über einen Aufruf von pfnQueryResidencyCb abfragen werden sollen. Bei einer Ressource, die eine einzelne Zuordnung besitzt, ist die Ermittlung einfach. Der Treiber fragt diese Zuordnung ab. Wenn eine Ressource jedoch mehrere Zuordnungen besitzt, ist die Ermittlung schwieriger. Der Treiber muss bestimmen, welche Zuordnungen eine Anwendung wahrscheinlich zum Rendern verwendet, und der Treiber muss nur diese Zuordnungen abfragen. Wenn eine Ressource beispielsweise eine Zuordnung besitzt, die zum Rendern verwendet wird, und eine Scratch-Zuordnung, die einen Sperrvorgang verarbeitet, sollte der Treiber nur den Wohnsitz der ersten Zuordnung abfragen, da eine Anwendung höchstwahrscheinlich die zweite Zuordnung nicht zum Rendern verwendet.

Hinweis Da die Runtime keine Residenzabfragen von Systemspeicherressourcen unterstützt, schlägt die Laufzeit immer Anforderungen von Anwendungen für die Residency-status von Systemspeicherressourcen fehl und ruft nie die QueryResourceResidency-Funktion des Benutzermodusanzeigetreibers für diese Systemspeicherressourcen auf.
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Desktop
Kopfzeile d3dumddi.h (include D3dumddi.h)

Weitere Informationen

D3DDDIARG_QUERYRESOURCERESIDENCY

D3DDDICB_QUERYRESIDENCY

D3DDDI_DEVICEFUNCS

pfnQueryResidencyCb