Funzione D3DKMTMapGpuVirtualAddress (d3dkmthk.h)
D3DKMTMapGpuVirtualAddress esegue il mapping di un intervallo di indirizzi virtuali GPU a un intervallo di allocazione specifico o lo inserisce nello stato non valido o Zero.
Sintassi
NTSTATUS D3DKMTMapGpuVirtualAddress(
D3DDDI_MAPGPUVIRTUALADDRESS *unnamedParam1
);
Parametri
unnamedParam1
[in/out] pData è un puntatore a una struttura D3DDDI_MAPGPUVIRTUALADDRESS che descrive l'operazione.
Valore restituito
Codice restituito | Descrizione |
---|---|
STATUS_SUCCESS | Il contesto del dispositivo è stato creato correttamente. |
STATUS_INVALID_PARAMETER | I parametri sono stati convalidati e sono stati determinati in modo che non siano corretti. |
Questa funzione potrebbe restituire anche altri valori NTSTATUS.
Osservazioni
Il driver può specificare un indirizzo virtuale della GPU di base (VA) per eseguire il mapping o consentire alla gestione della memoria video di selezionarne una automaticamente. Quando si specifica un valore di BaseAddress non NULL, L'intero intervallo compreso tra baseAddressBaseAddress+ Size deve essere in uno stato libero o appartenere a un intervallo va ottenuto chiamando D3DKMTMapGpuVirtualAddress o DxgkCbReserveGpuVirtualAddressRange. Quando si specifica Protection.Zero o Protection.NoAccess, l'intervallo va non può appartenere a un intervallo ottenuto chiamando MapGpuVirtualAddressCb.
Il driver 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 pagine. 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 D3DKMTFreeGpuVirtualAddress, 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 | Universale |
intestazione | d3dkmthk.h (include D3dkmthk.h) |
libreria | Gdi32.lib |
dll | Gdi32.dll |