STOR_POFX_DEVICE_V3-Struktur (storport.h)

Die STOR_POFX_DEVICE_V3-Struktur beschreibt die Energieattribute eines Speichergeräts für das Power Management Framework (PoFx). Diese Struktur ähnelt STOR_POFX_DEVICE ermöglicht dem Aufrufer jedoch die Angabe eines Leerlauftimeoutwerts.

Syntax

typedef struct _STOR_POFX_DEVICE_V3 {
  ULONG               Version;
  ULONG               Size;
  ULONG               ComponentCount;
  ULONG               Flags;
  union {
    ULONG UnitMinIdleTimeoutInMS;
    ULONG AdapterIdleTimeoutInMS;
  };
  ULONG               MinimumPowerCyclePeriodInMS;
  STOR_POFX_COMPONENT Components[ANYSIZE_ARRAY];
} STOR_POFX_DEVICE_V3, *PSTOR_POFX_DEVICE_V3;

Member

Version

Die Versionsnummer dieser Struktur. Legen Sie dieses Element auf STOR_POFX_DEVICE_VERSION_V3 fest.

Size

Die Größe dieser Struktur. Legen Sie diesen Wert auf STOR_POFX_DEVICE_V3_SIZE fest.

ComponentCount

Die Anzahl der Elemente im Array Components . Legen Sie diesen Member auf 1 fest. Derzeit wird nur eine einzelne Komponente für einen Speicheradapter oder eine logische Einheit unterstützt.

Flags

Die Geräteleistungsstatusfunktionen flags. Der Miniport legt mindestens eines der PoFx-Geräteflags fest, um Energiezustandsfunktionen zu aktivieren oder zu deaktivieren. Flags ist eine bitweise OR-Kombination der folgenden.

Flagwert Bedeutung
STOR_POFX_DEVICE_FLAG_NO_D0 (0x01) Fordert an, dass ein Einschalt-IRP nicht an das Geräteobjekt für den Adapter oder die Einheit gesendet wird.
STOR_POFX_DEVICE_FLAG_NO_D3 (0x02) Fordert an, dass ein Powerdown-IRP nicht an das Geräteobjekt für den Adapter oder die Einheit gesendet wird.
STOR_POFX_DEVICE_FLAG_ENABLE_D3_COLD (0x04) Ermöglicht Storport, den D3 Cold-Zustand für den Adapter festzulegen, wenn er ihn unterstützt. Dieses Flag gilt nur für Adapter.
STOR_POFX_DEVICE_FLAG_NO_DUMP_ACTIVE (0x08) Gibt an, ob ein Gerät für das Dump verfügbar ist, wenn es sich im Leerlauf befindet. Der Miniport kann das Speichergerät nicht im Abbildmodus aktivieren, wenn das Gerät in den Leerlaufzustand oder die Ausschaltung im Leerlaufzustand versetzt wurde.
STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT (0x10) Wenn die STOR_POFX_DEVICE_V3 eine Einheit darstellt, gibt dieses Flag an, dass das Feld UnitMinIdleTimeoutInMS berücksichtigt werden soll. Wenn der STOR_POFX_DEVICE_V3 einen Adapter darstellt, gibt dies an, dass das AdapterIdleTimeoutInMS-Feld berücksichtigt werden soll.
STOR_POFX_DEVICE_FLAG_ADAPTIVE_D3_IDLE_TIMEOUT (0x20) Gibt an, dass Storport das D3-Leerlauftimeout dynamisch anpassen soll, sodass das Gerät bei Bedarf aggressiv in D3 eingeben kann. Dies ist nur gültig, wenn STOR_POFX_DEVICE_V3 verwendet wird.
STOR_POFX_DEVICE_FLAG_NO_UNIT_REGISTRATION (0x40) Gibt an, dass keine der von diesem Adapter verfügbaren Einheiten für die Laufzeitenergieverwaltung registriert werden soll. Dies gilt nur für STOR_POFX_DEVICE Strukturen, die einen Adapter darstellen.
STOR_POFX_DEVICE_FLAG_PERF_STATE_PEP_OPTIONAL (0x80) Gibt an, dass der Miniport keine P-State-Unterstützung vom Plattformerweiterungs-Plug-In (PEP) erfordert. Legen Sie im Zweifelsfall dieses Flag fest.
STOR_POFX_DEVICE_FLAG_NO_IDLE_DEBOUNCE (0x100) Überprüft, ob die Dumpversion des Miniports das Gerät einschalten kann, wenn sich das Gerät im Leistungszustand befindet.
STOR_POFX_DEVICE_FLAG_DUMP_ALWAYS_POWER_ON (0x200) Der Miniport möchte, dass der Dumpstapel versucht, das Gerät einzuschalten.
STOR_POFX_DEVICE_FLAG_DISABLE_INTERRUPTS_ON_D3 (0x400) Der Miniport möchte, dass Storport Interrupts für Dx-Übergänge deaktiviert/aktiviert.
STOR_POFX_DEVICE_FLAG_ADAPTER_D3_WAKE (0x800) Unterstützung des Miniport-Isopt-In-Adapters D3 Wake.
STOR_POFX_DEVICE_FLAG_GET_PERF_STATE_FROM_PEP (0x1000) Der Miniport erfordert P-Zustände vom PEP.

UnitMinIdleTimeoutInMS

Die minimale Leerlaufzeit in Millisekunden für eine Einheit. Dieser Wert ist nur gültig, wenn STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT in Flags festgelegt ist.

AdapterIdleTimeoutInMS

Der Timeoutwert des Adapters im Leerlauf in Millisekunden. Dieser Wert ist nur gültig, wenn STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT in Flags festgelegt ist.

MinimumPowerCyclePeriodInMS

Gibt an, dass das Gerät nicht mehr als einmal pro Zeitraum in Millisekunden mit Strom (D0 -> D3 -> D0) ein-/ausschalten sollte. Dieser Member ist nur gültig, wenn das STOR_POFX_DEVICE_FLAG_ADAPTIVE_D3_IDLE_TIMEOUT-Flag festgelegt wurde.

Components[ANYSIZE_ARRAY]

Dieses Element ist das erste Element in einem Array aus mindestens einem STOR_POFX_COMPONENT Elementen. Wenn das Array mehrere Elemente enthält, folgen die zusätzlichen Elemente sofort der STOR_POFX_DEVICE-Struktur . Das Array enthält ein Element für jede Komponente im Gerät. Derzeit verfügen Speichergeräte nur über eine Komponente, sodass zusätzliche Komponentenstrukturen unnötig sind.

Hinweise

Um einen Speicheradapter für die Storport PoFx-Unterstützung zu registrieren, ruft der Miniporttreiber StorPortEnablePassiveInitialization in seiner HwStorInitialize-Routine auf und implementiert eine HwStorPassiveInitializeRoutine. Der Miniport ruft StorPortInitializePoFxPower in seiner HwStorPassiveInitializeRoutine auf, um Informationen zur Adapterkomponente bereitzustellen.

Um eine Speichereinheit für die Storport PoFx-Unterstützung zu registrieren, implementiert der Miniporttreiber die HwStorUnitControl-Rückrufroutine und ermöglicht die Verarbeitung des ScsiUnitPoFxPowerInfo-Komponentensteuerungscodes . Wenn der ScsiUnitPoFxPowerInfo-Steuerelementcode verarbeitet wird, ruft der Miniport StorPortInitializePoFxPower auf, wenn die Energieverwaltung im Leerlauf für die Komponentenkomponente aktiviert ist.

Die Komponente für das Speichergerät, das durch den Index des Komponentenarrays identifiziert wird. Speichergeräte verfügen nur über eine Komponente, sodass der Index 0 verwendet wird. Routinen wie StorPortPoFxActivateComponent und StorPortPoFxIdleComponent verwenden den Arrayindex einer Komponente, um die Komponente zu identifizieren.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10
Kopfzeile storport.h

Weitere Informationen

STOR_POFX_COMPONENT

STOR_POFX_DEVICE

StorPortInitializePoFxPower

StorPortPoFxActivateComponent

StorPortPoFxIdleComponent