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.
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) |