Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
DXGKCB_CREATECONTEXTALLOCATION weist einen GPU-Kontext oder gerätespezifischen Kontext zu.
Syntax
DXGKCB_CREATECONTEXTALLOCATION DxgkcbCreatecontextallocation;
NTSTATUS DxgkcbCreatecontextallocation(
[in/out] INOUT_PDXGKARGCB_CREATECONTEXTALLOCATION unnamedParam1
)
{...}
Parameter
[in/out] unnamedParam1
Ein Zeiger auf eine DXGKARGCB_CREATECONTEXTALLOCATION Struktur, die die Attribute des zuzuordnenden Kontexts angibt.
Rückgabewert
DXGKCB_CREATECONTEXTALLOCATION gibt STATUS_SUCCESS zurück, wenn dies erfolgreich ist. Andernfalls wird eine der fehlercodes zurückgegeben, die in ntstatus.hdefiniert sind.
Bemerkungen
Ab WDDM 1.2 können Display-Miniporttreiber einen GPU-spezifischen Kontext (GPU-Kontextzuordnung) oder einen gerätespezifischen Kontext (Gerätekontextzuordnung) zuweisen.
Eine GPU-Kontextzuordnung ermöglicht GPUs das Speichern des Kontextzustands aus DMA-Puffern, die in der Mitte ihrer Ausführung vorausgesetzt werden. Treiber erstellen Zuordnungen, die einem GPU-Kontext zugeordnet sind, um den Zustand zu speichern, wenn dies erforderlich ist. Das Betriebssystem stellt sicher, dass die Kontextzuordnung vorhanden ist, bevor ein Befehl aus diesem Kontext in der Hardwareausführungswarteschlange der GPU platziert wird. Der Kontext bleibt erhalten, bis ein Befehl aus einem anderen Kontext in der Hardwareausführungswarteschlange platziert wird.
Darüber hinaus unterstützt das Betriebssystem einen faulen GPU-Kontextwechsel, indem davon ausgegangen wird, dass der Hardwarekontextstatus auf der GPU beibehalten wird, nachdem ein Befehl abgeschlossen wurde, der zum Kontext gehört. Auf diese Weise werden Kontexte nur auf die GPU umgeschaltet, wenn ein Befehl aus einem anderen Kontext an die Hardwarewarteschlange übermittelt wird.
DXGKCB_XXX Funktionen werden von Dxgkrnlimplementiert. Um diese Rückruffunktion zu verwenden, legen Sie die Member von DXGKARGCB_ALLOCATEPAGESFORMDL fest, und rufen Sie dann DxgkCbCreateContextAllocation über die DXGKRNL_INTERFACEauf.
GPU-Kontextzuordnungen
GPU-Kontextzuordnungen können nur für Nicht-Systemkontexte vorgenommen werden. Der Miniporttreiber für die Anzeige erstellt diese Kontexte, indem DxgkDdiCreateContext-aufgerufen wird. Um einen Nicht-Systemkontext zu erstellen, legt der Treiber den SystemContext Member einer DXGK_CREATECONTEXTFLAGS Struktur auf Null fest und übergibt einen Zeiger auf diese Struktur im pCreateContext- Parameter.
Eine Gerätekontextzuordnung folgt einem ähnlichen Modell, mit der Ausnahme, dass sie für alle Kontexte, die dem Gerät zugeordnet sind, beibehalten wird. Mit diesem Modell können Treiber GPU-Kontextzuordnungen zum Speichern von DATEN des GPU-Kontextspeicherbereichs (CSA) verwenden und Gerätekontextzuordnungen zum Speichern von Seitentabellendaten verwenden.
Gerätekontextzuordnungen
Gerätekontextzuordnungen können nur für gerätefremde Geräte vorgenommen werden. Der Anzeige-Miniporttreiber erstellt diese Geräte durch Aufrufen von DxgkDdiCreateDevice. Zum Erstellen eines Nicht-Systemgeräts legt der Treiber die Flags.SystemDevice Member einer DXGK_CREATEDEVICEFLAGS Struktur auf Null fest und übergibt einen Zeiger an diese Struktur im pCreateDevice Parameter.
Der Miniporttreiber ruft DXGKCB_DESTROYCONTEXTALLOCATION auf, um die Kontextressourcen freizugeben, die über DxgkCbCreateContextAllocationzugeordnet wurden.
Virtuelle Adressen für Zielkontextzuordnungen
Um sicherzustellen, dass das Betriebssystem eine gültige virtuelle Adresse (nicht NULL) für die Zielkontextzuordnung festlegt (InitContextResource->Destination->VirtualAddress Member der DXGKARG_BUILDPAGINGBUFFER-Struktur), wenn der Anzeige-Miniporttreiber DxgkCbCreateContextAllocation aufruft, muss folgendes:
- Legen Sie die CpuVisible- und Protected Member der DXGK_ALLOCATIONINFOFLAGS-Struktur fest.
- Seite in der Zuordnung nur zu Blendensegmenten durch Festlegen des SupportedSegmentSet Member der DXGKARGCB_CREATECONTEXTALLOCATION Struktur.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 8 (WDDM 1.2) |
mindestens unterstützte Server- | Windows Server 2012 |
Zielplattform- | Desktop |
Header- | d3dkmddi.h (einschließlich D3dkmddi.h) |
IRQL- | PASSIVE_LEVEL |
Siehe auch
DXGKARGCB_CREATECONTEXTALLOCATION