Freigeben über


DXGKDDI_UPDATECURRENTVALUESFROMCPU Rückruffunktion (d3dkmddi.h)

Das Betriebssystem ruft DxgkDdiUpdateCurrentValuesFromCpu auf, um die CurrentValue- eines Batches systemeigener Zäune aus der CPU zu aktualisieren.

Syntax

DXGKDDI_UPDATECURRENTVALUESFROMCPU DxgkddiUpdatecurrentvaluesfromcpu;

NTSTATUS DxgkddiUpdatecurrentvaluesfromcpu(
  IN_CONST_PDXGKARG_UPDATECURRENTVALUESFROMCPU pUpdateCurrentValuesFromCpu
)
{...}

Parameter

pUpdateCurrentValuesFromCpu

[in] Zeigen Sie auf eine DXGKARG_UPDATECURRENTVALUESFROMCPU Struktur, die die aktuellen zu aktualisierenden Werte enthält.

Bemerkungen

Dieser DDI wird verwendet, um die vorhandene "Signalzaun von CPU"-API-Semantik zu unterstützen. Anstatt Dxgkrnl eine neue CurrentValuezu schreiben, wird der Treiber aufgefordert, in CurrentValue- zu schreiben, um Treibern die Möglichkeit zu geben, alle erforderlichen Vorschreibsynchronisierungs-/Barrieren einzufügen. Das Betriebssystem synchronisiert cpuseitige Updates und garantiert, dass der aktuellste Wert für DxgkDdiUpdateCurrentValuesFromCpuverfügbar ist. Nach dem Aktualisieren CurrentValue-muss der Treiber die GPU auslösen, um die Blockierung von Hardwarewarteschlangen zu entsperren, die auf diesem Zaun warten und mit dem Update auf CurrentValueentsperrt wurden.

Kurz gesagt sind die Schritte, auf die der Treiber folgt:


for i = 1 : NumFences
  1. Insert pre-write memory barrier if required
  2. write new value to CurrentValueCpuVa
  3. trigger GPU to unblock any HwQueues that got unblocked by the updated CurrentValue
end

Das Betriebssystem garantiert nur, dass der CurrentValueKernelCpuVa Zeiger für die Dauer dieses DDI-Aufrufs gültig ist und nicht vor oder nach dem Aufruf. Daher darf KMD diesen Zeiger niemals zwischenspeichern, damit er an anderer Stelle verwendet werden kann.

Weitere Informationen zu systemeigenen GPU-Zaunen finden Sie unter native GPU-Zaunobjekte.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 11, Version 24H2
Header- d3dkmddi.h
IRQL- DISPATCH_LEVEL

Siehe auch

DXGKARG_UPDATECURRENTVALUESFROMCPU