Share via


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;

Members

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 da BaseAddress a BaseAddress+Size non è gratuito, deve appartenere a un intervallo, ottenuto in precedenza chiamando pfnReserveGpuVirtualAddressCb o pfnMapGpuVirtualAddressCb.

Il valore BaseAddress è espresso in byte e deve essere allineato al limite della pagina della CPU. Se viene specificato NULL, il gestore della memoria video selezionerà l'indirizzo di base per l'allocazione all'interno dell'oggetto MinimumAddress e MaximumAddress specificato.

MinimumAddress

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

Il valore MinimumAddress è espresso in byte e deve essere allineato a una 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. La gestione memoria video garantisce che BaseAddress+Size<= MaximumAddress. Se MaximumAddress è impostato su NULL, la gestione memoria video non applicherà alcun limite.

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

hAllocation

Handle per l'allocazione di cui è stato eseguito il mapping nello spazio di indirizzi virtuali della GPU. Deve essere NULL quando viene specificato 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 isolamento del paging del dispositivo che il gestore della memoria video segnala quando l'operazione di mapping viene completata nella GPU. Il driver in modalità utente deve assicurarsi che questo limite venga ritirato o attendere 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 isolamento zero, vale a dire che l'operazione è già stata completata.

Requisiti

Requisito Valore
Client minimo supportato Windows 10
Server minimo supportato Windows Server 2016
Intestazione d3dukmdt.h (include D3dumddi.h, D3dkmddi.h)

Vedi anche

D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE

D3DKMTMapGpuVirtualAddress

DxgkDdiUpdatePageTable

pfnMapGpuVirtualAddressCb

pfnReserveGpuVirtualAddressCb