Condividi tramite


struttura D3DDDI_MAPGPUVIRTUALADDRESS (d3dukmdt.h)

La struttura D3DDDI_MAPGPUVIRTUALADDRESS viene usata con pfnMapGpuVirtualAddressCb per eseguire il mapping di un intervallo di indirizzi virtuali GPU a un intervallo di allocazione specifico o per inserirlo nello stato non valido o Zero.

Sintassi

typedef struct D3DDDI_MAPGPUVIRTUALADDRESS {
  D3DKMT_HANDLE                           hPagingQueue;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   BaseAddress;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   MinimumAddress;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   MaximumAddress;
  D3DKMT_HANDLE                           hAllocation;
  D3DKMT_ALIGN64 D3DGPU_SIZE_T            OffsetInPages;
  D3DKMT_ALIGN64 D3DGPU_SIZE_T            SizeInPages;
  D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Protection;
  D3DKMT_ALIGN64 UINT64                   DriverProtection;
  UINT                                    Reserved0;
  D3DKMT_ALIGN64 UINT64                   Reserved1;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   VirtualAddress;
  D3DKMT_ALIGN64 UINT64                   PagingFenceValue;
} D3DDDI_MAPGPUVIRTUALADDRESS;

Membri

hPagingQueue

Handle per la coda di paging del dispositivo, usata per l'operazione.

BaseAddress

(Facoltativo) Se non NULL, la gestione memoria video tenterà di usare questo indirizzo come indirizzo di base per il mapping. Se l'intervallo compreso tra baseAddressBaseAddress+ Size non è gratuito, deve appartenere a un intervallo, precedentemente ottenuto chiamando pfnReserveGpuVirtualAddressCb o pfnMapGpuVirtualAddressCb.

Il valore baseAddress è in byte e deve essere allineato al limite della pagina della CPU. Se si specifica NULL, la gestione della memoria video selezionerà l'indirizzo di base per l'allocazione all'interno dell' MinimumAddress specificato e MaximumAddress.

MinimumAddress

(Facoltativo) Specifica l'indirizzo virtuale GPU minimo da considerare per l'intervallo mappato.

Il valore MinimumAddress è in byte e deve essere allineato alla pagina di 4 KB. Questo parametro viene ignorato quando BaseAddress != NULL.

MaximumAddress

(Facoltativo) Specifica l'indirizzo virtuale GPU massimo da considerare per l'intervallo mappato. Gestione memoria video garantirà che BaseAddress+Size<= MaximumAddress. Se maximumAddress è impostato su NULL, la gestione della memoria video non applicherà alcun limite.

Il valore maximumAddress è in byte e deve essere allineato alla pagina 4 KB. Questo parametro viene ignorato quando BaseAddress != NULL.

hAllocation

Handle per l'allocazione di cui è stato eseguito il mapping nello spazio indirizzi virtuale gpu. Deve essere NULL quando si specifica Protection.NoAccess o Protection.Zero.

OffsetInPages

Specifica l'offset, in 4 KB, alla pagina iniziale all'interno dell'allocazione specificata di cui è necessario eseguire il mapping.

SizeInPages

Specifica le dimensioni dell'intervallo da mappare, in pagine da 4 KB.

Protection

Struttura D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE che specifica la protezione nell'indirizzo virtuale GPU mappato.

DriverProtection

Specifica un valore di protezione a 64 bit specifico del driver associato all'intervallo va allocato. La protezione del driver specificata verrà usata nella chiamata a DxgkDdiUpdatePageTable per le voci della tabella di pagine corrispondenti a questo intervallo di indirizzi virtuali.

Reserved0

Questo membro è riservato e deve essere impostato su zero.

Reserved1

Questo membro è riservato e deve essere impostato su zero.

VirtualAddress

Indirizzo virtuale assegnato all'allocazione.

PagingFenceValue

Valore di limite di paging del dispositivo che il gestore della memoria video segnala quando l'operazione di mapping viene completata sulla GPU. Il driver in modalità utente deve assicurarsi che questa recinzione venga ritirata o attenda in modo esplicito la CPU o la GPU su tale limite prima di consentire alla GPU di accedere all'intervallo mappato o potrebbe verificarsi un errore irreversibile. Potrebbe essere restituito un valore di recinto zero, vale a dire che l'operazione è già stata completata.

Fabbisogno

Requisito Valore
client minimo supportato Windows 10
server minimo supportato Windows Server 2016
intestazione d3dukmdt.h (include D3dumddi.h, D3dkmddi.h)

Vedere anche

D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE

D3DKMTMapGpuVirtualAddress

DxgkDdiUpdatePageTable

pfnMapGpuVirtualAddressCb

pfnReserveGpuVirtualAddressCb