D3DDDI_MAPGPUVIRTUALADDRESS Struktur (d3dukmdt.h)
Die D3DDDI_MAPGPUVIRTUALADDRESS-Struktur wird mit pfnMapGpuVirtualAddressCb verwendet, um einen virtuellen GPU-Adressbereich einem bestimmten Zuordnungsbereich zuzuordnen oder ihn in den Status "Ungültig" oder "Null " zu versetzen.
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;
Member
hPagingQueue
Ein Handle für die Geräte paging-Warteschlange, die 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 pfnMapGpuVirtualAddressCb abgerufen wurde.
Der BaseAddress-Wert ist in Bytes 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 minimale virtuelle GPU-Adresse an, die für den zugeordneten Bereich berücksichtigt werden soll.
Der MinimumAddress-Wert ist in Bytes und muss an der 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 kein Limit an.
Der Wert MaximumAddress ist in Bytes und muss an der Seite mit 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 zu zuordnenden Bereichs in 4 KB-Seiten an.
Protection
Eine D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE-Struktur , die den Schutz für die zugeordnete virtuelle GPU-Adresse angibt.
DriverProtection
Gibt einen treiberspezifischen 64-Bit-Schutzwert an, der dem zugeordneten VA-Bereich zugeordnet ist. Der angegebene Treiberschutz wird beim Aufruf von DxgkDdiUpdatePageTable für Seitentabelleneinträge verwendet, die diesem virtuellen Adressbereich entsprechen.
Reserved0
Dieser Member ist reserviert und sollte auf null festgelegt werden.
Reserved1
Dieser Member ist reserviert und sollte auf null festgelegt werden.
VirtualAddress
Die der Zuordnung zugewiesene virtuelle Adresse.
PagingFenceValue
Der Wert des Geräteauslagerungszauns, den der Videospeicher-Manager beim Abschluss des Kartenvorgangs auf der GPU signalisiert. Der Benutzermodustreiber muss sicherstellen, dass dieser Zaun eingestellt wird oder explizit auf die CPU oder die GPU auf diesem Zaun warten, bevor die GPU auf den zugeordneten Bereich zugreifen kann, oder es kann ein nicht behebbarer Fehler auftreten. Es kann ein Wert ohne Zaun zurückgegeben werden, was bedeutet, dass der Vorgang bereits abgeschlossen ist.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10 |
Unterstützte Mindestversion (Server) | Windows Server 2016 |
Kopfzeile | d3dukmdt.h (einschließlich D3dumddi.h, D3dkmddi.h) |