функция обратного вызова 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) |