DXGKDDI_QUERYDEPENDENTENGINEGROUP Rückruffunktion (d3dkmddi.h)

DXGKDDI_QUERYDEPENDENTENGINEGROUP wird vom GPU-Planer des Anzeigeporttreibers aufgerufen, um Abhängigkeiten von Knoten in einer physischen Grafikkarte abzufragen.

Syntax

DXGKDDI_QUERYDEPENDENTENGINEGROUP DxgkddiQuerydependentenginegroup;

NTSTATUS DxgkddiQuerydependentenginegroup(
  IN_CONST_HANDLE hAdapter,
  INOUT_DXGKARG_QUERYDEPENDENTENGINEGROUP pQueryDependentEngineGroup
)
{...}

Parameter

hAdapter

Ein Handle für einen Kontextblock, der einem Anzeigeadapter zugeordnet ist. Der Anzeigeminiporttreiber hat dieses Handle zuvor für das DirectX-Grafikkernsubsystem im Ausgabeparameter MiniportDeviceContext der DxgkDdiAddDevice-Funktion bereitgestellt.

pQueryDependentEngineGroup

Ein Wert vom Typ DXGKARG_QUERYDEPENDENTENGINEGROUP , der alle Knoten angibt, die vom Zurücksetzungsvorgang betroffen sind.

Rückgabewert

Gibt STATUS_SUCCESS zurück, wenn dies erfolgreich ist. Andernfalls wird einer der in "Ntstatus.h" definierten Fehlercodes zurückgegeben.

Hinweise

Diese Funktion wird verwendet, um alle physischen Adapter (Engines) zu beschreiben, die von einer Enginezurücksetzungsanforderung betroffen sind. Es trägt zur Verbesserung der Benutzererfahrung bei Hardwarearchitekturen bei, die Abhängigkeiten zwischen mehreren Engines aufweisen, die sich auf den Zurücksetzungsprozess auswirken können. Beachten Sie, dass alle betroffenen Knoten den gleichen Engineaffinitätswert aufweisen müssen. (Weitere Informationen finden Sie in der Modulaffinitätsdiskundanz unter TDR-Änderungen in Windows 8.)

Der GPU-Scheduler des Anzeigeporttreibers ruft dxgkDdiQueryDependentEngineGroup jedes Mal auf, wenn die DxgkDdiResetEngine-Funktion aufgerufen wird. Der GPU-Planer wartet 500 Millisekunden, bis der Anzeige-Miniporttreiber die Vorzeitigkeit aller abhängigen Engines abgeschlossen hat. Für alle Engines, für die der Treiber keine Vorzeitige Entfernung abschließen kann, ruft der GPU-Planer die DxgkDdiResetEngine-Funktion sequenziell basierend auf dem Ordnungswert der Engine auf.

Hier sehen Sie ein Beispiel für die Berechnung der Bitmaske im DXGKARG_QUERYDEPENDENTENGINEGROUP. DependentNodeOrdinalMask-Member . Wenn die ursprünglichen Werte der NodeOrdinal- und EngineOrdinal-Member der DXGKARG_QUERYDEPENDENTENGINEGROUP-Struktur 1 bzw. 0 sind und zusätzliche Knoten mit den Bezeichnern 2 und 4 beim Zurücksetzen von Knoten 1 ebenfalls zurückgesetzt werden, sollte der Treiber den Binärwert von DependentNodeOrdinalMask auf 10110 oder 0x16 in hexadezimaler Notation festlegen. Der Indexwert EngineOrdinal wird für alle abhängigen Knoten als identisch angenommen. Der zurückgesetzte Knoten ist in der Bitmaske DependentNodeOrdinalMask enthalten.

Diese Funktion sollte auslagerungsfähig gemacht werden, und sie sollte immer erfolgreich sein.

Das Betriebssystem garantiert, dass diese Funktion dem Synchronisierungsmodus der ersten Ebene folgt, der in Threading und Synchronisierung erster Ebene definiert ist.

Weitere Informationen finden Sie unter TDR-Änderungen in Windows 8.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8
Unterstützte Mindestversion (Server) Windows Server 2012
Zielplattform Desktop
Kopfzeile d3dkmddi.h
IRQL PASSIVE_LEVEL

Weitere Informationen

DXGKARG_CREATECONTEXT

DXGKARG_QUERYDEPENDENTENGINEGROUP

DXGK_DRIVERCAPS

DxgkDdiAddDevice

DxgkDdiResetEngine