PoFxSetComponentLatency-Funktion (wdm.h)

Die PoFxSetComponentLatency-Routine gibt die maximale Latenz an, die beim Übergang von der Leerlaufbedingung zur aktiven Bedingung in der angegebenen Komponente toleriert werden kann.

Syntax

void PoFxSetComponentLatency(
  [in] POHANDLE  Handle,
  [in] ULONG     Component,
  [in] ULONGLONG Latency
);

Parameter

[in] Handle

Ein Handle, das die Registrierung des Geräts mit dem Power Management Framework (PoFx) darstellt. Der Gerätetreiber hat dieses Handle zuvor von der PoFxRegisterDevice-Routine erhalten.

[in] Component

Der Index, der die Komponente identifiziert. Dieser Parameter ist ein Index in das Array Components in der PO_FX_DEVICE Struktur, die der Gerätetreiber zum Registrieren des Geräts bei PoFx verwendet hat. Wenn das Komponentenarray N-Elemente enthält, reichen die Komponentenindizes von 0 bis N–1.

[in] Latency

Die maximale Latenz in Einheiten mit 100 Nanosekunden, die in der angegebenen Komponente toleriert werden kann. Weitere Informationen finden Sie in den Hinweisen.

Rückgabewert

Keine

Bemerkungen

Der aufrufende Treiber stellt eine maximale Latenz bereit, die Clients des Geräts in der angegebenen Komponente tolerieren können. Diese Latenz ist die Zeit, die erforderlich ist, um einen Übergang von der Leerlaufbedingung zur aktiven Bedingung abzuschließen. PoFx verwendet diese Latenz als Hinweis, um die Leistung zu verbessern.

Wenn die Komponente von der aktiven Bedingung in die Leerlaufbedingung wechselt, wählt PoFx einen geeigneten Fx-Zustand mit geringer Leistung für die komponente aus, die eingegeben werden soll. Nachdem dieser Übergang abgeschlossen ist, hängt die erforderliche Zeit, um zur aktiven Bedingung zurückzukehren, vom ausgewählten Fx-Zustand ab. PoFx versucht, einen Fx-Zustand auszuwählen, der nicht gegen die maximale Latenzanforderung verstößt.

Wenn ein Treiber beispielsweise die Leistungszustände F0, F1 und F2 in der angegebenen Komponente unterstützt, stellt der F2-Zustand eine niedrigere Leistungseinstellung als der F1-Zustand dar. In der Regel ist die Zeit, die T2 benötigt, um von F2 zu reaktivieren (bis zum vollständig aktivierten Zustand F0) länger als die Zeit, die T1 für das Reaktivieren von F1 erforderlich ist. Wenn die maximale Latenz größer als T1, aber kleiner als T2 ist, kann PoFx die Komponente sicher in den F1-Zustand umschalten und trotzdem die maximale Latenzanforderung erfüllen. PoFx vermeidet es jedoch, die Komponente in den F2-Zustand zu wechseln, da dies gegen diese Anforderung verstößt.

Der Gerätetreiber kann PoFxSetComponentLatency jedes Mal aufrufen, wenn eine Änderung der Bedingungen eine Änderung der maximalen Latenz erfordert. Nach jedem Aufruf bleibt die neue maximale Latenz wirksam, bis der Treiber PoFxSetComponentLatency erneut aufruft, um sie zu aktualisieren.

Wenn sich eine Komponente im Leerlauf befindet, wenn PoFxSetComponentLatency aufgerufen wird, kann PoFx den aktuellen Fx-Zustand der Komponente ändern, um die vom Aufrufer angegebene neue maximale Latenz zu berücksichtigen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 8.
Zielplattform Universell
Header wdm.h
Bibliothek Ntoskrnl.lib
DLL Ntoskrnl.exe
IRQL <= DISPATCH_LEVEL

Weitere Informationen

PO_FX_DEVICE

PoFxRegisterDevice