Freigeben über


D3DKMTUpdateGpuVirtualAddress-Funktion (d3dkmthk.h)

D3DKMTUpdateGpuVirtualAddress ist ein spezieller Vorgang, der im Kontext von Kachelressourcen verwendet wird. Es ermöglicht dem Treiber, eine Reihe von Zuordnungsvorgängen anzugeben, die auf den virtuellen Adressraum des Prozesses in einem einzigen Batch von Seitentabellenaktualisierungen angewendet werden sollen.

Syntax

NTSTATUS D3DKMTUpdateGpuVirtualAddress(
  [in] const D3DKMT_UPDATEGPUVIRTUALADDRESS *unnamedParam1
);

Parameter

[in] unnamedParam1

Ein Zeiger auf eine D3DKMT_UPDATEGPUVIRTUALADDRESS Struktur, die den Vorgang beschreibt.

Rückgabewert

Rückgabecode Beschreibung
STATUS_SUCCESS Der Gerätekontext wurde erfolgreich erstellt.
STATUS_INVALID_PARAMETER Parameter wurden überprüft und ermittelt, dass sie falsch sind.

Diese Funktion kann auch andere NTSTATUS- Werte zurückgeben.

Bemerkungen

Der Bereich der virtuellen GPU-Adressen (Grafikverarbeitungseinheit) in allen Vorgängen (mit Ausnahme der Quelle der Kopiervorgänge) muss zu einem einzelnen virtuellen Adressbereich gehören, der durch Aufrufen ReserveGpuVirtualAddressRangeabgerufen wurde. Ebenso müssen die virtuellen Adressbereiche aller Quellen in Kopiervorgängen zu einem einzigen virtuellen Adressbereich gehören, der durch Aufrufen ReserveGpuVirtualAddressRangeabgerufen wurde.

Die Aktualisierungen der Seitentabelle werden in einem Auslagerungskontext ausgeführt, der dem angegebenen Renderingkontext zugeordnet ist und nur nach dem zugeordneten Renderingkontext FenceValue für das angegebene überwachte Zaunobjekt ausgeführt wird. Wenn die Seitentabelle aktualisiert wird, signalisiert der Auslagerungskontext das überwachte Zaunobjekt FenceValue+1, sodass der Renderingkontext eng mit den Seitentabellenaktualisierungen verbunden werden kann.

Die virtuellen Adressbereiche in den Aktualisierungsvorgängen dürfen sich überschneiden. Die Vorgänge werden in der Reihenfolge angewendet, in der sie übermittelt werden.

In einem einzelnen UpdateVirtualAddress Aufruf:

  • Alle virtuellen Adressbereiche in Zuordnungsvorgängen und der Zielbereich in Kopiervorgängen müssen zum gleichen reservierten (Null)-Bereich gehören.
  • Der virtuelle Adressbereich der Quelle in Kopiervorgängen darf aus einem anderen reservierten (Null)-Bereich stammen.
  • Der virtuelle Quelladressbereich in allen Kopiervorgängen muss zum gleichen reservierten (Null)-Bereich gehören.

Treiber können viele UpdateGpuVirtualAddress Aufrufe übermitteln, die hinter dem Renderzaun in die Warteschlange gestellt werden. Wenn die Anzahl der Aktualisierungsvorgänge in der Warteschlange 128 überschreitet, wird der aufrufende Thread blockiert, bis die vorherigen Vorgänge vom Videospeicher-Manager verarbeitet werden.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10
mindestens unterstützte Server- Windows Server 2016
Zielplattform- Universal
Header- d3dkmthk.h (einschließlich D3dkmthk.h)
Library Gdi32.lib
DLL- Gdi32.dll

Siehe auch

D3DKMT_UPDATEGPUVIRTUALADDRESS

ReserveGpuVirtualAddressRange