функция обратного вызова PO_FX_DIRECTED_POWER_DOWN_CALLBACK (wdm.h)
Функция обратного вызова PO_FX_DIRECTED_POWER_DOWN_CALLBACK реализована драйвером клиента для обработки действий, относящихся к драйверу, для отключения питания от имени DFx (Направленные PoFx).
Синтаксис
PO_FX_DIRECTED_POWER_DOWN_CALLBACK PoFxDirectedPowerDownCallback;
void PoFxDirectedPowerDownCallback(
PVOID Context,
ULONG Flags
)
{...}
Параметры
Context
Предоставляет указатель на контекст, переданный в PoFxRegisterDevice.
Flags
Зарезервировано для дальнейшего использования.
Возвращаемое значение
Никакой
Замечания
Драйверы WDM, которые регистрируются в PoFx для поддержки управления питанием среды выполнения, необходимо реализовать этот обратный вызов, чтобы добавить поддержку DFx.
Зарегистрируйте реализацию этой функции обратного вызова, задав соответствующий член структуры PO_FX_DEVICE_V3, а затем вызовите PoFxRegisterDevice.
Этот обратный вызов вызывается во время современного резервного сеанса, когда это устройство или зависимое от этого устройства заблокировано запись DRIPS по крайней мере в течение двух последовательных минут (время ожидания, настраиваемое драйвером, по умолчанию 2 минуты) без каких-либо действий программного обеспечения с брокером активации.
При вызове этого обратного вызова драйвер обычно выполняет следующие высокоуровневые задачи:
Остановите обработку новых работ.
Немедленно переходите в состояние низкой мощности.
Оставаться в состоянии низкой мощности, пока система не вызовет PO_FX_DIRECTED_POWER_UP_CALLBACKдрайвера.
Шаги реализации и порядок могут отличаться, но могут включать некоторые из следующих вариантов:
Запросить dx IRP.
После прибытия Dx IRP блокируйте очереди ввода-вывода.
Дождитесь завершения выполняемых операций.
Если эти операции занимают слишком много времени, при необходимости отмените их.
Выполните действия, необходимые для перехода устройства в Dx (например, сохранение состояния оборудования).
Рука для пробуждения по мере необходимости.
Оставаться в Dx, пока системные вызовы PO_FX_DIRECTED_POWER_UP_CALLBACK.
Контракт очень похож на S3/S4, хотя не участвуют S-IRP.
Если используется иерархия устройств, направленная платформа питания запрашивает дочерние устройства для выключения до родительского устройства. Для данного родительского устройства рассматриваются прямые дочерние (перечисленные родительскими) и косвенные дочерние элементы из-за отношений питания.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 10 версии 1903 |
заголовка | wdm.h (include Wdm.h) |