D3DDDI_MAPGPUVIRTUALADDRESS Struktur (d3dukmdt.h)
Die D3DDDI_MAPGPUVIRTUALADDRESS-Struktur wird mit pfnMapGpuVirtualAddressCb verwendet, um einen virtuellen GPU-Adressbereich einem bestimmten Zuordnungsbereich zuzuordnen oder sie dem Ungültigen oder Null Zustand zuzuordnen.
Syntax
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;
Angehörige
hPagingQueue
Ein Handle für die Geräte paging-Warteschlange, der für den Vorgang verwendet wird.
BaseAddress
(Optional) Wenn kein NULL-Wert besteht, versucht der Videospeicher-Manager, diese Adresse als Basisadresse für die Zuordnung zu verwenden. Wenn der Bereich von BaseAddress bis BaseAddress+Size nicht frei ist, muss er zu einem Bereich gehören, der zuvor durch Aufrufen von pfnReserveGpuVirtualAddressCb oder pfnMapGpuVirtualAddressCbabgerufen wurde.
Der wert BaseAddress ist in Byte und muss an der CPU-Seitengrenze ausgerichtet werden. Wenn NULL angegeben ist, wählt der Videospeicher-Manager die Basisadresse für die Zuordnung innerhalb der angegebenen MinimumAddress- und MaximumAddress-aus.
MinimumAddress
(Optional) Gibt die virtuelle Mindestadresse der GPU an, die für den zugeordneten Bereich berücksichtigt werden soll.
Der wert MinimumAddress ist in Byte und muss auf einer Seite mit 4 KB ausgerichtet werden. Dieser Parameter wird ignoriert, wenn BaseAddress != NULL.
MaximumAddress
(Optional) Gibt die maximale virtuelle GPU-Adresse an, die für den zugeordneten Bereich berücksichtigt werden soll. Der Videospeicher-Manager garantiert, dass BaseAddress+Size<= MaximumAddress. Wenn MaximumAddress auf NULL festgelegt ist, wendet der Videospeicher-Manager keine Beschränkung an.
Der wert MaximumAddress ist in Byte und muss an der Seite 4 KB ausgerichtet werden. Dieser Parameter wird ignoriert, wenn BaseAddress != NULL.
hAllocation
Behandeln Sie die Zuordnung, die dem virtuellen GPU-Adressraum zugeordnet wird. Muss NULL sein, wenn Protection.NoAccess- oder Protection.Zero- angegeben wird.
OffsetInPages
Gibt den Offset in 4 KB auf die Startseite innerhalb der angegebenen Zuordnung an, die zugeordnet werden muss.
SizeInPages
Gibt die Größe des zuzuordnenden Bereichs in 4 KB-Seiten an.
Protection
Eine D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Struktur, die den Schutz für die virtuelle GPU-Adresse angibt, die zugeordnet ist.
DriverProtection
Gibt einen treiberspezifischen 64-Bit-Schutzwert an, der dem zugewiesenen VA-Bereich zugeordnet ist. Der angegebene Treiberschutz wird beim Aufruf von DxgkDdiUpdatePageTable- für Seitentabelleneinträge verwendet, die diesem virtuellen Adressbereich entsprechen.
Reserved0
Dieses Element ist reserviert und sollte auf Null festgelegt werden.
Reserved1
Dieses Element ist reserviert und sollte auf Null festgelegt werden.
VirtualAddress
Die virtuelle Adresse, die der Zuordnung zugewiesen ist.
PagingFenceValue
Der Geräte-Auslagerungszaunwert, den der Videospeicher-Manager signalisiert, wenn der Kartenvorgang auf der GPU abgeschlossen ist. Der Benutzermodustreiber muss sicherstellen, dass dieser Zaun eingestellt oder explizit auf die CPU oder die GPU auf diesem Zaun gewartet wird, bevor die GPU auf den zugeordneten Bereich zugreifen kann oder ein nicht behebbarer Fehler auftreten kann. Ein Nullzaunwert kann zurückgegeben werden, was bedeutet, dass der Vorgang bereits abgeschlossen ist.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 10 |
mindestens unterstützte Server- | Windows Server 2016 |
Header- | d3dukmdt.h (einschließlich D3dumddi.h, D3dkmddi.h) |