структура STOR_POFX_DEVICE_V3 (storport.h)

Структура STOR_POFX_DEVICE_V3 описывает атрибуты питания запоминающего устройства для платформы управления питанием (PoFx). Эта структура похожа на STOR_POFX_DEVICE , но позволяет вызывающей объекту указать значение времени ожидания простоя.

Синтаксис

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;

Члены

Version

Номер версии этой структуры. Задайте для этого элемента значение STOR_POFX_DEVICE_VERSION_V3.

Size

Размер этой структуры. Задайте для этого значения значение STOR_POFX_DEVICE_V3_SIZE.

ComponentCount

Количество элементов в массиве Components . Задайте для этого элемента значение 1. В настоящее время для адаптера хранилища или логической единицы поддерживается только один компонент.

Flags

Флаги возможностей состояния питания устройства. Мини-порт устанавливает один или несколько флагов устройств PoFx , чтобы включить или отключить возможности состояния питания. Флаги — это побитовая комбинация ИЛИ следующего.

Значение флага Значение
STOR_POFX_DEVICE_FLAG_NO_D0 (0x01) Запрашивает, чтобы IRP питания не отправлялся в объект устройства для адаптера или устройства.
STOR_POFX_DEVICE_FLAG_NO_D3 (0x02) Запрашивает, чтобы IRP с выключенным питанием не отправлялось в объект устройства для адаптера или устройства.
STOR_POFX_DEVICE_FLAG_ENABLE_D3_COLD (0x04) Позволяет Storport задать холодное состояние D3 для адаптера, если он его поддерживает. Этот флаг применяется только к адаптерам.
STOR_POFX_DEVICE_FLAG_NO_DUMP_ACTIVE (0x08) Указывает, доступно ли устройство для дампа при его простое. Мини-порт не может перевести устройство хранения в режим дампа, если устройство перешло в состояние простоя или выключено в состоянии простоя.
STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT (0x10) Если STOR_POFX_DEVICE_V3 представляет единицу, этот флаг указывает, что поле UnitMinIdleTimeoutInMS должно учитываться. Если STOR_POFX_DEVICE_V3 представляет адаптер, это означает, что поле AdapterIdleTimeoutInMS должно учитываться.
STOR_POFX_DEVICE_FLAG_ADAPTIVE_D3_IDLE_TIMEOUT (0x20) Указывает, что Storport должен динамически настраивать время ожидания простоя D3 таким образом, чтобы при необходимости устройство вело агрессивный вход в D3. Это допустимо только при использовании STOR_POFX_DEVICE_V3 .
STOR_POFX_DEVICE_FLAG_NO_UNIT_REGISTRATION (0x40) Указывает, что ни одна из единиц, предоставляемых этим адаптером, не должна быть зарегистрирована для управления питанием среды выполнения. Это допустимо только для STOR_POFX_DEVICE структур, представляющих адаптер.
STOR_POFX_DEVICE_FLAG_PERF_STATE_PEP_OPTIONAL (0x80) Указывает, что мини-порт не требует поддержки P-State от подключаемого модуля расширения платформы (PEP). Если вы сомневаетесь, установите этот флаг.
STOR_POFX_DEVICE_FLAG_NO_IDLE_DEBOUNCE (0x100) Проверяет, насколько включена версия дампа минипорта, когда устройство находится в состоянии меньшего питания.
STOR_POFX_DEVICE_FLAG_DUMP_ALWAYS_POWER_ON (0x200) Минипорту требуется, чтобы стек дампа попытается включить устройство.
STOR_POFX_DEVICE_FLAG_DISABLE_INTERRUPTS_ON_D3 (0x400) Мини-порт хочет, чтобы Storport отключает или включает прерывания для переходов Dx.
STOR_POFX_DEVICE_FLAG_ADAPTER_D3_WAKE (0x800) Поддержка пробуждения D3 адаптера isopt-in для минипорта.
STOR_POFX_DEVICE_FLAG_GET_PERF_STATE_FROM_PEP (0x1000) Для мини-порта требуются P-состояния из PEP.

UnitMinIdleTimeoutInMS

Минимальное время простоя в миллисекундах для единицы. Это значение допустимо, только если STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT задано в разделе Флаги.

AdapterIdleTimeoutInMS

Значение времени ожидания простоя адаптера в миллисекундах. Это значение допустимо, только если STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT задано в разделе Флаги.

MinimumPowerCyclePeriodInMS

Указывает, что для устройства не должно быть циклическое питание (D0 –> D3 –> D0) более одного раза за указанный период в миллисекундах. Этот элемент действителен, только если установлен флаг STOR_POFX_DEVICE_FLAG_ADAPTIVE_D3_IDLE_TIMEOUT.

Components[ANYSIZE_ARRAY]

Этот элемент является первым элементом в массиве из одного или нескольких элементов STOR_POFX_COMPONENT . Если массив содержит несколько элементов, дополнительные элементы сразу же следуют за структурой STOR_POFX_DEVICE . Массив содержит по одному элементу для каждого компонента на устройстве. В настоящее время устройства хранения имеют только один компонент, поэтому дополнительные структуры компонентов не нужны.

Комментарии

Чтобы зарегистрировать адаптер хранилища для поддержки Storport PoFx, драйвер мини-порта вызывает StorPortEnablePassiveInitialization в своей подпрограмме HwStorInitialize и реализует HwStorPassiveInitializeRoutine. Мини-порт вызывает StorPortInitializePoFxPower внутри HwStorPassiveInitializeRoutine , чтобы предоставить сведения о компоненте адаптера.

Чтобы зарегистрировать единицу хранения для поддержки Storport PoFx, драйвер мини-порта реализует процедуру обратного вызова HwStorUnitControl и обеспечивает обработку кода управления блоком ScsiUnitPoFxPowerInfo . При обработке кода элемента управления ScsiUnitPoFxPowerInfo мини-порт вызывает StorPortInitializePoFxPower, если включено управление бездействующего питания для компонента единицы.

Компонент для устройства хранения, определяемый индексом массива Компонентов . Устройства хранения имеют только один компонент, поэтому используется индекс 0. Подпрограммы, такие как StorPortPoFxActivateComponent и StorPortPoFxIdleComponent , используют индекс массива компонента для идентификации компонента.

Требования

Требование Значение
Минимальная версия клиента Windows 10
Верхняя часть storport.h

См. также раздел

STOR_POFX_COMPONENT

STOR_POFX_DEVICE

StorPortInitializePoFxPower

StorPortPoFxActivateComponent

StorPortPoFxIdleComponent