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

Функция обратного вызова EvtHidspicxNotifyPowerdown реализуется драйвером клиента для получения уведомлений о переходе устройства в состояние с низким энергопотреблением.

Синтаксис

EVT_HIDSPICX_NOTIFY_POWERDOWN EvtHidspicxNotifyPowerdown;

NTSTATUS EvtHidspicxNotifyPowerdown(
  WDFDEVICE Device,
  BOOLEAN ArmForWake
)
{...}

Параметры

Device

Дескриптор объекта устройства платформы, полученного драйвером клиента из предыдущего вызова WdfDeviceCreate.

ArmForWake

Логическое значение, указывающее, будет ли устройство вооружены для пробуждения в целевом состоянии для предстоящего перехода питания.

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

NTSTATUS указывает, прошла ли подготовка к переходу на питание. Ожидается, что этот метод не завершится сбоем во время выполнения и может привести к сбою устройства в HidSpiCx.

Комментарии

Драйвер клиента должен реализовать и обеспечить обратный вызов, который HidSpiCx будет использовать для уведомления клиента о предстоящем отключении питания. Цель этого обратного вызова — разрешить расширению класса указать клиенту прекратить обработку прерываний с устройства, так как устройство вот-вот перейдет в состояние с низким энергопотреблением. Клиент не должен возобновлять прерывания обработки, пока не будет выполнен обратный вызов D0Entry WDF клиента.

Эта функция предназначена для того, чтобы избежать случая при входе в спящий режим, когда расширение класса отправляет SET_POWER SLEEP команду на устройство, а устройство утверждает, что прерывает пробуждение перед завершением dx IRP расширением класса и драйвером клиента. Без дополнительного обратного вызова, предписывающего клиенту остановить аппаратную обработку прерываний, оборудование выдает считывание SPI в ответ на прерывание пробуждения, что нарушает протокол, требующий от узла сначала отправить команду перед обработкой SET_POWER ON прерываний с устройства.

Эта функция будет вызываться расширением класса в пассивном IRQL, и клиент не должен возвращать, пока обработка прерываний не будет прекращена.

Указывает, будет ли устройство вооружена для пробуждения на уровне шины, предоставляется клиенту в качестве удобства, что позволяет водителю клиента избежать мониторинга команд WAIT_WAKE , если он не является водителем автобуса.

Требования

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

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

Состояния питания устройства

Состояния Low-Power устройств