PFND3DDDI_SETPRIORITYCB funzione di callback (d3dumddi.h)
La funzione pfnSetPriorityCb imposta il livello di priorità di una risorsa o di un elenco di allocazioni.
Sintassi
PFND3DDDI_SETPRIORITYCB Pfnd3dddiSetprioritycb;
HRESULT Pfnd3dddiSetprioritycb(
HANDLE hDevice,
D3DDDICB_SETPRIORITY *unnamedParam2
)
{...}
Parametri
hDevice
Handle per il dispositivo di visualizzazione (contesto grafico).
unnamedParam2
pData [in]
Puntatore a una struttura D3DDDICB_SETPRIORITY che descrive il livello di priorità su cui impostare una risorsa o un elenco di allocazioni.
Valore restituito
pfnSetPriorityCb restituisce uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
S_OK | Il livello di priorità è stato impostato correttamente. |
E_INVALIDARG | I parametri sono stati convalidati e sono stati determinati in modo che non siano corretti. |
Questa funzione potrebbe restituire anche altri valori HRESULT.
Osservazioni
Il driver di visualizzazione in modalità utente può chiamare la funzione pfnSetPriorityCb per impostare la priorità della risorsa o dell'elenco di allocazioni sottostanti. Se viene impostato il livello di priorità di una risorsa, tutte le allocazioni che appartengono alla risorsa vengono impostate sul livello di priorità specificato. In genere, il driver di visualizzazione in modalità utente imposta la priorità di una risorsa o di un elenco di allocazioni dopo che il runtime di Microsoft Direct3D chiama il driver di visualizzazione in modalità utente SetPriority o Funzione SetResourcePriorityDXGI per impostare la priorità di rimozione dalla memoria per una risorsa. Tuttavia, il driver di visualizzazione in modalità utente può impostare la priorità delle allocazioni in qualsiasi momento.
Dopo che un'applicazione richiede di impostare il livello di priorità di una superficie, il driver di visualizzazione in modalità utente deve impostare la risorsa o l'elenco di allocazioni appropriato sul livello di priorità specificato dall'applicazione.
Il driver può usare livelli di priorità diversi dai valori definiti precedenti, se appropriato. Ad esempio, contrassegnando un'allocazione con un livello di priorità di 0x78000001 indica che l'allocazione è leggermente superiore alla normale.
Esempi
Nell'esempio di codice seguente viene illustrato come impostare il livello di priorità.
HRESULT CD3DContext::SetPriority(CONST D3DDDIARG_SETPRIORITY* pSetPriority) {
DWORD dwSurfaceHandle = (DWORD)(DWORD_PTR)pSetPriority->hResource;
CResource &res = m_RTbl[dwSurfaceHandle];
D3DDDICB_SETPRIORITY setPri;
UINT priority;
priority = pSetPriority->Priority;
memset(&setPri, 0, sizeof(setPri));
setPri.hResource = res.m_hResRuntime;
setPri.pPriorities = &priority;
return (m_d3dCallbacks.pfnSetPriorityCb(m_hD3D, &setPri));
}
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) |