PFND3DDDI_QUERYRESOURCERESIDENCY funzione di callback (d3dumddi.h)
La funzione QueryResourceResidency determina la residenza dell'elenco specificato di risorse.
Sintassi
PFND3DDDI_QUERYRESOURCERESIDENCY Pfnd3dddiQueryresourceresidency;
HRESULT Pfnd3dddiQueryresourceresidency(
HANDLE hDevice,
const D3DDDIARG_QUERYRESOURCERESIDENCY *unnamedParam2
)
{...}
Parametri
hDevice
Handle per il dispositivo di visualizzazione (contesto grafico).
unnamedParam2
pData [in]
Puntatore a una struttura D3DDDIARG_QUERYRESOURCERESIDENCY che descrive un elenco di risorse in cui viene verificata la residenza.
Valore restituito
queryResourceResidency restituisce uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
S_OK | Tutte le risorse sono in memoria accessibile tramite GPU. |
S_RESIDENT_IN_SHARED_MEMORY | Nessuna allocazione che comprende le risorse si trovano su disco. Tuttavia, almeno un'allocazione non è in memoria accessibile dalla GPU. |
S_NOT_RESIDENT | Almeno un'allocazione che comprende le risorse è su disco. |
E_INVALIDARG | I parametri sono stati convalidati e sono stati determinati in modo che non siano corretti. |
E_OUTOFMEMORY | QueryResourceResidency non è riuscito ad allocare memoria necessaria per il completamento. |
Osservazioni
Il runtime Di Microsoft Direct3D chiama il driver di visualizzazione in modalità utente Funzione QueryResourceResidency per le applicazioni per determinare se il sistema operativo incorre in un blocco significativo in fase di disegno se il sistema deve rendere le risorse accessibili tramite GPU. Le informazioni restituite da QueryResourceResidency sono un'approssimazione della residenza delle risorse perché le risorse potrebbero essere abbassate di livello prima che le applicazioni usino le risorse.
La funzione di queryResourceResidency del driver di visualizzazione in modalità utente deve effettuare chiamate alla funzione pfnQueryResidencyCb. La funzione pfnQueryResidencyCb restituisce lo stato di residenza di una risorsa negli elementi della matrice specificata dal pResidencyStatus membro della struttura D3DDDICB_QUERYRESIDENCY. Se pfnQueryResidencyCb restituisce D3DDDI_RESIDENCYSTATUS_NOTRESIDENT per qualsiasi query, QueryResourceResidency deve restituire S_NOT_RESIDENT. Se pfnQueryResidencyCb restituisce D3DDDI_RESIDENCYSTATUS_RESIDENTINSHAREDMEMORY per qualsiasi query e non restituisce D3DDDI_RESIDENCYSTATUS_NOTRESIDENT per qualsiasi query, QueryResourceResidency deve restituire S_RESIDENT_IN_SHARED_MEMORY. QueryResourceResidency deve restituire S_OK solo se tutte le chiamate a pfnQueryResidencyCb per tutte le query restituiscono D3DDDI_RESIDENCYSTATUS_RESIDENTINGPUMEMORY.
Per ogni risorsa eseguita dalla query di runtime tramite una chiamata a QueryResourceResidency, il driver di visualizzazione in modalità utente deve determinare quali allocazioni appartengono alla risorsa da eseguire tramite una chiamata a pfnQueryResidencyCb. Per una risorsa proprietaria di una singola allocazione, la determinazione è semplice: il driver eseguirà una query su tale allocazione. Tuttavia, se una risorsa possiede più allocazioni, la determinazione è più difficile. Il driver deve determinare quali allocazioni verranno probabilmente usate da un'applicazione per il rendering e il driver deve eseguire query solo su tali allocazioni. Ad esempio, se una risorsa è proprietaria di un'allocazione usata per il rendering e un'allocazione scratch che gestisce un'operazione di blocco, il driver deve eseguire una query solo per la residenza della prima allocazione, perché un'applicazione probabilmente non userà la seconda allocazione per il rendering.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows. |
piattaforma di destinazione | Desktop |
intestazione | d3dumddi.h (include D3dumddi.h) |