DXGKDDI_QUERYDEPENDENTENGINEGROUP Rückruffunktion (d3dkmddi.h)
DxgkrnlGPU-Scheduler ruft DxgkddiQuerydependentenginegroup auf, um Abhängigkeiten von Knoten in einem physischen Anzeigeadapter abzufragen.
Syntax
DXGKDDI_QUERYDEPENDENTENGINEGROUP DxgkddiQuerydependentenginegroup;
NTSTATUS DxgkddiQuerydependentenginegroup(
IN_CONST_HANDLE hAdapter,
INOUT_DXGKARG_QUERYDEPENDENTENGINEGROUP pQueryDependentEngineGroup
)
{...}
Parameter
hAdapter
[in] Ein Handle zu einem Kontextblock, der einem Anzeigeadapter zugeordnet ist. Der Display-Miniporttreiber hat dieses Handle zuvor dem DirectX-Grafik-Kernelsubsystem im MiniportDeviceContext Ausgabeparameter des DxgkDdiAddDevice--Funktion bereitgestellt.
pQueryDependentEngineGroup
[in/out] Eine DXGKARG_QUERYDEPENDENTENGINEGROUP Struktur, in der KMD alle Knoten angibt, die vom Zurücksetzensvorgang betroffen sind.
Rückgabewert
DxgkddiQuerydependentenginegroup- muss STATUS_SUCCESSzurückgeben.
Bemerkungen
Dxgkrnl-GPU-Scheduler ruft diese Funktion auf, um eine Beschreibung aller physischen Adapter (Engines) zu erhalten, die von einer Modulzurücksetzungsanforderung betroffen sind. Dies trägt zur Verbesserung der Benutzererfahrung bei Hardwarearchitekturen bei, die Abhängigkeiten zwischen mehreren Modulen aufweisen, die sich auf den Zurücksetzungsprozess auswirken können. Beachten Sie, dass alle betroffenen Knoten den gleichen Modulaffinitätswert aufweisen müssen. (Siehe die Modulaffinitätsdiskssion in TDR-Änderungen in Windows 8.)
Der GPU-Scheduler ruft DxgkDdiQueryDependentEngineGroup jedes Mal auf, wenn er DxgkDdiResetEngineaufruft. Der GPU-Scheduler wartet auf 500 Millisekunden, bis der Miniporttreiber für den Display-Miniport-Treiber die Vorbehaltung aller abhängigen Engines abgeschlossen hat. Für alle Engines, die der Treiber nicht abschließen kann, ruft der GPU-Scheduler die DxgkDdiResetEngine- funktion sequenziell basierend auf dem Modul-Ordnungswert auf.
Hier ist ein Beispiel für die Berechnung der Bitmaske im DXGKARG_QUERYDEPENDENTENGINEGROUP.DependentNodeOrdinalMask Mitglied. Wenn die ursprünglichen Werte der NodeOrdinal- der DXGKARG_QUERYDEPENDENTENGINEGROUP Struktur und EngineOrdinal Member 1 bzw. 0 sind und zusätzliche Knoten mit Bezeichnern 2 und 4 ebenfalls zurückgesetzt werden, wenn Knoten 1 zurückgesetzt wird, sollte der Treiber DependentNodeOrdinalMask auf 10110 oder 0x16 in hexadezimaler Schreibweise festlegen. Der Indexwert EngineOrdinal wird angenommen, dass er für alle abhängigen Knoten identisch ist. Der zurückgesetzte Knoten ist im DependentNodeOrdinalMask Bitmaske enthalten.
Diese Funktion sollte seitenfähig gemacht werden, und sie sollte immer erfolgreich sein.
Das Betriebssystem garantiert, dass diese Funktion dem Synchronisierungsmodus der ersten Ebene folgt, wie in Threading und Synchronisierung first Leveldefiniert.
Weitere Informationen finden Sie unter TDR-Änderungen in Windows 8.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 8 |
mindestens unterstützte Server- | Windows Server 2012 |
Zielplattform- | Desktop |
Header- | d3dkmddi.h |
IRQL- | PASSIVE_LEVEL |