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