функция обратного вызова EVT_ACX_FACTORY_CIRCUIT_POWER_DOWN (acxcircuit.h)
Обратный вызов EVT_ACX_FACTORY_CIRCUIT_POWER_DOWN используется драйвером для добавления функциональных возможностей в пути выключения питания объекта ACXFACTORYCIRCUIT.
Синтаксис
EVT_ACX_FACTORY_CIRCUIT_POWER_DOWN EvtAcxFactoryCircuitPowerDown;
NTSTATUS EvtAcxFactoryCircuitPowerDown(
WDFDEVICE Device,
ACXFACTORYCIRCUIT Factory,
WDF_POWER_DEVICE_STATE TargetState
)
{...}
Параметры
Device
Объект WDFDEVICE (описан в разделе Сводка по объектам платформы), связанный с каналом ACX.
Factory
Существующий объект ACXFACTORYCIRCUIT фабрики цепи. Дополнительные сведения об объектах ACX см. в разделе Сводка по объектам ACX.
TargetState
Перечисление WDF_POWER_DEVICE_STATE, определяющее состояние питания целевого устройства.
Возвращаемое значение
Возвращает значение STATUS_SUCCESS
, если вызов был выполнен успешно. В противном случае возвращается соответствующий код ошибки. Дополнительные сведения см. в разделе Использование значений NTSTATUS.
Комментарии
Чтобы зарегистрировать функцию обратного вызова EvtAcxFactoryCircuitPrepareHardware, драйвер должен вызвать AcxFactoryCircuitInitSetAcxCircuitPnpPowerCallbacks.
Если драйвер зарегистрировал функцию обратного вызова EvtCircuitPowerDown, платформа ACX вызывает функцию каждый раз, когда одно из устройств драйвера выходит из рабочего (D0) состояния. Устройство выходит из состояния D0, когда происходит одно из следующих действий:
- Система и все ее устройства собираются выйти из рабочих состояний и перейти в состояние с низким энергопотреблением.
- Устройство перейдет в состояние с низким энергопотреблением, так как оно бездействует, если устройство поддерживает малое энергопотребление.
- Менеджер Plug and Play пытается перераспределить аппаратные ресурсы системы.
- Как правило, с помощью пользовательского интерфейса приложения пользователь указал, что хочет удалить устройство.
- Платформа также вызывает функцию обратного вызова EvtFactoryCircuitPowerDown после неожиданного удаления устройства (неожиданного удаления).
Дополнительные сведения о том, когда платформа вызывает эту функцию обратного вызова, см. в статье Сценарии PnP и управления питанием.
Если устройство не было удалено неожиданно, платформа ACX вызывает эту функцию обратного вызова сразу после отключения прерываний устройства, но до того, как мощность устройства уменьшится с D0 и до того, как WDF вызовет обратный вызов EvtDeviceD0Exit драйвера на связанных устройствах. Параметр TargetState определяет состояние питания устройства, в которое будет входить устройство.
Функция обратного вызова EvtFactoryCircuitPowerDown должна выполнять все операции, необходимые до того, как оборудование ACXFACTORYCIRCUT перейдет в указанное состояние с низким энергопотреблением, например сохранять все сведения, которые понадобятся драйверу для восстановления оборудования ACXFACTORYCIRCUIT до состояния D0.
Если targetState имеет значение WdfPowerDeviceD3Final, следует предположить, что система отключена, связанное устройство будет удалено или выполняется перерасчет ресурсов. Если драйвер должен сохранить данные, он должен записать их на диск или другой постоянный носитель.
Дополнительные сведения о драйверах, предоставляющих эту функцию обратного вызова, см. в разделе Поддержка PnP и управления питанием в драйвере функций.
Требования к ACX
Минимальная версия ACX: 1.0
Дополнительные сведения о версиях ACX см. в статье Обзор версий ACX.
Требования
Требование | Значение |
---|---|
Заголовок | acxcircuit.h |
IRQL | PASSIVE_LEVEL |