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


Метод IPowerPolicyCallbackWakeFromS0::OnArmWakeFromS0 (wudfddi.h)

[Предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. В UMDF 1 новые функции не добавляются, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе начало работы с UMDF.]

Оператор функции обратного вызова OnArmWakeFromS0 драйвера (т. е. включает) устройство, чтобы оно запустите сигнал пробуждения в состоянии устройства с низким энергопотреблением, если система остается в рабочем состоянии системы (S0).

Синтаксис

HRESULT OnArmWakeFromS0(
  [in] IWDFDevice *pWdfDevice
);

Параметры

[in] pWdfDevice

Указатель на интерфейс IWDFDevice объекта устройства, представляющего одно из устройств драйвера.

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

Если операция выполнена успешно, функция обратного вызова OnArmWakeFromS0 должна возвращать S_OK или другое значение состояния, для которого SUCCEEDED(status) равно TRUE. В противном случае он должен вернуть значение состояния, для которого SUCCEEDED(status) равно FALSE.

Если значение SUCCEEDED(status) равно FALSE, платформа вызывает функцию обратного вызова IPowerPolicyCallbackWakeFromS0::OnDisarmWakeFromS0 драйвера. (Платформа не сообщает диспетчеру PnP о сбое устройства.)

Комментарии

Драйвер должен предоставить функцию обратного вызова OnArmWakeFromS0 , если драйвер поддерживает интерфейс IPowerPolicyCallbackWakeFromS0 .

Функция обратного вызова OnArmWakeFromS0 обрабатывает операции, относящиеся к конкретному устройству, чтобы позволить устройству обнаруживать внешнее событие, которое активирует сигнал пробуждения в шине. Драйвер шины в режиме ядра обрабатывает операции, связанные с шиной, такие как включение сигнала события управления питанием (PME) шины PCI.

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

Процесс выполняется в следующей последовательности:

  1. Платформа определяет, что устройство бездействует в течение предустановленного периода времени.
  2. Платформа вызывает функцию обратного вызова OnArmWakeFromS0 драйвера.
  3. Платформа запрашивает драйвер для шины устройства, чтобы снизить мощность устройства.
Непосредственно перед тем, как устройство перейдет в состояние низкого энергопотребления, платформа вызовет функцию обратного вызова IPnpCallback::OnD0Exit вашего драйвера.

Дополнительные сведения о том, когда платформа вызывает эту функцию обратного вызова, см. в статье Сценарии PnP и управления питанием в UMDF.

Вам не нужно предоставлять функцию обратного вызова OnArmWakeFromS0 , если устройство:

  • Usb-устройство, поддерживающее "выборочную приостановку".
  • Не может быть выключен, пока система остается полностью питанием.
  • Не требуются специальные аппаратные операции, позволяющие устройству активировать сигнал пробуждения.
Если устройство поддерживает "выборочную приостановку" USB и если драйвер указывает IdleUsbSelectiveSuspend при вызове IWDFDevice2::AssignS0IdleSettings, платформа отправляет запрос "выборочной приостановки" драйверу USB-шины, когда устройство неактивно в течение заданного периода времени.

Дополнительные сведения об этой функции обратного вызова см. в статье Поддержка Power-Down простоя в драйверах на основе UMDF.

Требования

Требование Значение
Дата окончания поддержки Недоступно в UMDF 2.0 и более поздних версиях.
Целевая платформа Персональный компьютер
Минимальная версия UMDF 1,9
Верхняя часть wudfddi.h (включая Wudfddi.h)

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

IPowerPolicyCallbackWakeFromS0

IPowerPolicyCallbackWakeFromS0::OnDisarmWakefromS0

IPowerPolicyCallbackWakeFromS0::OnWakeFromS0Triggered