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 di 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 dalla GPU.
S_RESIDENT_IN_SHARED_MEMORY Nessuna allocazione che comprende le risorse si trovano su disco. Tuttavia, almeno un'allocazione non si trova nella 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 come non corretti.
E_OUTOFMEMORY QueryResourceResidency non è riuscito ad allocare memoria necessaria per il completamento.

Commenti

Il runtime di Microsoft Direct3D chiama la funzione QueryResourceResidency del driver di visualizzazione in modalità utente per le applicazioni per determinare se il sistema operativo incorrerà in un blocco significativo in fase di disegno se il sistema deve rendere accessibili le risorse 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 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 membro pResidencyStatus 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 alcuna 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 per eseguire query tramite una chiamata a pfnQueryResidencyCb. Per una risorsa proprietaria di una singola allocazione, la determinazione è semplice. Il driver eseguirà una query sull'allocazione. Tuttavia, se una risorsa possiede più allocazioni, la determinazione è più difficile. Il driver deve determinare le allocazioni che un'applicazione userà probabilmente per il rendering e il driver deve eseguire query solo su tali allocazioni. Ad esempio, se una risorsa possiede 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 non riuscirà sempre a eseguire richieste dalle applicazioni per lo stato di residenza delle risorse di memoria di sistema e non chiamerà mai la funzione QueryResourceResidency del driver di visualizzazione in modalità utente per queste risorse di memoria di sistema.
 

Requisiti

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)

Vedi anche

D3DDDIARG_QUERYRESOURCERESIDENCY

D3DDDICB_QUERYRESIDENCY

D3DDDI_DEVICEFUNCS

pfnQueryResidencyCb