Condividi tramite


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.

Nota Poiché il runtime non supporta l'esecuzione di query di residenza delle risorse di memoria di sistema, il runtime avrà sempre esito negativo alle richieste delle applicazioni per lo stato di residenza delle risorse di memoria di sistema e non chiamerà mai la funzione di queryResourceResidency del driver di visualizzazione in modalità utente per queste risorse di memoria di sistema.
 

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)

Vedere anche

D3DDDIARG_QUERYRESOURCERESIDENCY

D3DDDICB_QUERYRESIDENCY

D3DDDI_DEVICEFUNCS

pfnQueryResidencyCb