PFND3DDDI_SETPRIORITYCB funzione di callback (d3dumddi.h)
La funzione pfnSetPriorityCb imposta il livello di priorità di una risorsa o 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à per impostare una risorsa o un elenco di allocazioni su.
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 determinati per essere non corretti. |
Questa funzione potrebbe anche restituire altri valori HRESULT.
Commenti
Il driver di visualizzazione in modalità utente può chiamare la funzione pfnSetPriorityCb per impostare la priorità della risorsa sottostante o dell'elenco di allocazioni. Se il livello di priorità di una risorsa è impostato, tutte le allocazioni appartenenti 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 un elenco di allocazioni dopo che il runtime di Microsoft Direct3D chiama la funzione SetPriority o 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 appropriate al livello di priorità specificato dall'applicazione.
Il driver può usare i livelli di priorità diversi dai valori definiti precedente quando appropriato. Ad esempio, contrassegnando un'allocazione con un livello di priorità di 0x78000001 indica che l'allocazione è leggermente superiore alla normale.
Esempio
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));
}
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) |