PFND3DDDI_MAPGPUVIRTUALADDRESSCB funzione di callback (d3dumddi.h)

pfnMapGpuVirtualAddressCb esegue il mapping degli intervalli di indirizzi virtuali della GPU (VA) a un intervallo di allocazione specifico o lo inserisce nello stato Invalid 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 di D3DDDI_MAPGPUVIRTUALADDRESS che descrive l'operazione da eseguire.

Valore restituito

pfnMapGpuVirtualAddressCb restituisce uno dei valori seguenti:

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

Questa funzione potrebbe anche restituire altri valori.

Commenti

Il driver in modalità utente può specificare un indirizzo virtuale della GPU di base (VA) per eseguire il mapping o consentire la selezione automatica della gestione memoria video. Quando si specifica un valore baseAddress diverso da NULL, l'intero intervallo compreso tra BaseAddress e BaseAddressSize deve trovarsi in uno stato libero 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 la cui tabella di pagina viene modificata e l'handle di allocazione (se non NULL) definisce la posizione in cui le voci della tabella di pagina puntano. L'allocazione può essere residente in qualsiasi segmento di memoria GPU fisica.

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

Requisiti

Requisito Valore
Client minimo supportato Windows 10
Server minimo supportato Windows Server 2016
Piattaforma di destinazione Desktop
Intestazione d3dumddi.h (include D3dumddi.h)

Vedi anche

D3DDDI_MAPGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb