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 |