Поделиться через


функция обратного вызова PO_FX_DIRECTED_POWER_DOWN_CALLBACK (wdm.h)

Функция обратного вызова PO_FX_DIRECTED_POWER_DOWN_CALLBACK реализуется драйвером клиента для обработки действий выключения питания от имени DFx (Directed PoFx).

Синтаксис

PO_FX_DIRECTED_POWER_DOWN_CALLBACK PoFxDirectedPowerDownCallback;

void PoFxDirectedPowerDownCallback(
  PVOID Context,
  ULONG Flags
)
{...}

Параметры

Context

Предоставляет указатель на контекст, передаваемый в PoFxRegisterDevice.

Flags

Зарезервировано для последующего использования.

Возвращаемое значение

None

Remarks

Драйверы WDM, которые регистрируются в PoFx для поддержки управления бездействующим питанием среды выполнения, должны реализовать этот обратный вызов, чтобы добавить поддержку DFx.

Зарегистрируйте реализацию этой функции обратного вызова, задав соответствующий член структуры PO_FX_DEVICE_V3 , а затем вызвав PoFxRegisterDevice.

Этот обратный вызов вызывается во время современного резервного сеанса, когда это устройство или зависимое от него устройство блокировало запись DRIPS в течение по крайней мере двух минут подряд (настраиваемое драйвером время ожидания, по умолчанию 2 минуты) без выполнения каких-либо действий программного обеспечения через брокер активатора.

При вызове этого обратного вызова драйвер обычно выполняет следующие высокоуровневые задачи:

  • Остановите обработку новых работ.

  • Немедленно переходите в состояние с низким энергопотреблением.

  • Оставаться в состоянии низкого энергопотребления, пока система не вызовет PO_FX_DIRECTED_POWER_UP_CALLBACK драйвера.

Шаги реализации и порядок могут отличаться, но могут включать в себя некоторые из следующих:

  • Запросите Dx IRP.

  • После получения dx IRP блокируйте очереди ввода-вывода.

  • Дождитесь завершения выполняемых операций.

  • Если эти операции занимают слишком много времени, при необходимости отмените их.

  • Выполните действия, необходимые для перевода устройства в Dx (например, сохранить состояние оборудования).

  • При необходимости вооружайтесь для пробуждения.

  • Вызовите PoFxCompleteDirectedPowerDown.

  • Оставаться в Dx до тех пор, пока система не вызовет PO_FX_DIRECTED_POWER_UP_CALLBACK.

Контракт очень похож на S3/S4, хотя S-IRP не участвует.

Если используется иерархия устройств, то платформа управления питанием запрашивает выключение дочерних устройств перед родительским устройством. Для данного родительского устройства учитываются прямые дочерние элементы (перечисляемые родительским устройством) и непрямые дочерние элементы из-за отношений власти .

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 1903
Верхняя часть wdm.h (включая Wdm.h)

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

Введение в платформу управления направленным питанием

PO_FX_DIRECTED_POWER_UP_CALLBACK