Condividi tramite


PFND3DDDI_MAPGPUVIRTUALADDRESSCB funzione di callback (d3dumddi.h)

pfnMapGpuVirtualAddressCb esegue il mapping degli intervalli di indirizzi virtuali GPU a un intervallo di allocazione specifico o lo inserisce nello stato non valido o Zero.

Sintassi

PFND3DDDI_MAPGPUVIRTUALADDRESSCB Pfnd3dddiMapgpuvirtualaddresscb;

HRESULT Pfnd3dddiMapgpuvirtualaddresscb(
  HANDLE hDevice,
  D3DDDI_MAPGPUVIRTUALADDRESS *unnamedParam2
)
{...}

Parametri

hDevice

Handle per il dispositivo di visualizzazione.

unnamedParam2

[in/out] pDate è un puntatore a una struttura D3DDDI_MAPGPUVIRTUALADDRESS che descrive l'operazione da eseguire.

Valore restituito

pfnMapGpuVirtualAddressCb restituisce uno dei valori seguenti:

Codice restituito Descrizione
S_OK Operazione completata correttamente.
E_PENDING La chiamata ha avuto esito positivo, ma l'operazione non è stata completata. Il chiamante deve attendere il valore di recinto restituito prima di accedere all'allocazione.

Questa funzione potrebbe restituire anche altri valori.

Osservazioni

Il driver in modalità utente può specificare un indirizzo virtuale GPU di base (VA) per eseguire il mapping o consentire al gestore della memoria video di selezionarne uno automaticamente. Quando si specifica un valore BaseAddress non NULL, L'intero intervallo compreso tra BaseAddress e BaseAddress+Size deve essere in uno stato liberato o appartenere a un intervallo va ottenuto chiamando pfnMapGpuVirtualAddressCb o pfnReserveGpuVirtualAddressCb. Quando si specifica Protection.Zero o Protection.NoAccess, l'intervallo va non può appartenere a un intervallo ottenuto chiamando pfnMapGpuVirtualAddressCb.

Il driver in modalità utente può specificare se il mapping deve consentire privilegi di scrittura ed esecuzione oltre ai privilegi di lettura, che esistono sempre per impostazione predefinita.

Nella configurazione dell'adattatore di visualizzazione collegato (LDA) la coda di paging definisce una GPU fisica le cui tabelle di pagine vengono modificate e l'handle di allocazione (se non NULL) definisce la posizione in cui puntano le voci della tabella di pagina. L'allocazione può risiedere in qualsiasi segmento di memoria GPU fisica.

L'intervallo va GPU, allocato dall'API, viene liberato quando l'allocazione (viene mappata la GPU VA a) viene eliminata definitivamente. L'intervallo va può anche essere liberato chiamando PFND3DDDI_FREEGPUVIRTUALADDRESSCB, ma deve essere sincronizzato con la distruzione dell'allocazione, se necessario.

Fabbisogno

Requisito Valore
client minimo supportato Windows 10
server minimo supportato Windows Server 2016
piattaforma di destinazione Desktop
intestazione d3dumddi.h (include D3dumddi.h)

Vedere anche

D3DDDI_MAPGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb