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


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

[Относится к KMDF и UMDF]

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

Синтаксис

EVT_WDF_DEVICE_D0_ENTRY EvtWdfDeviceD0Entry;

NTSTATUS EvtWdfDeviceD0Entry(
  [in] WDFDEVICE Device,
  [in] WDF_POWER_DEVICE_STATE PreviousState
)
{...}

Параметры

[in] Device

Дескриптор объекта устройства платформы.

[in] PreviousState

WDF_POWER_DEVICE_STATE типизированный перечислитель, который определяет предыдущее состояние питания устройства.

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

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

Дополнительные сведения о возвращаемых значениях этой функции обратного вызова см. в разделе Отчеты о сбоях устройств.

Платформа не вызывает функцию обратного вызова EvtDeviceD0Exit драйвера после того, как функция обратного вызова EvtDeviceD0Entry возвращает значение состояния, для которого NT_SUCCESS(status) равно FALSE.

Комментарии

Чтобы зарегистрировать функцию обратного вызова EvtDeviceD0Entry для устройства, драйвер должен вызвать WdfDeviceInitSetPnpPowerEventCallbacks.

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

  • Устройство перечисляется (так как устройство было подключено или система была перезагружена).
  • Система и все ее устройства возвращаются в рабочее состояние из состояния с низким энергопотреблением.
  • Устройство возвращается в рабочее состояние после того, как оно перейдет в состояние с низким энергопотреблением, так как оно было бездействующее (если устройство поддерживает малое энергопотребление).
  • Диспетчер Plug and Play распределил аппаратные ресурсы системы между устройствами системы.
Платформа вызывает функцию обратного вызова EvtDeviceD0Entry сразу после того, как устройство переходит в рабочее (D0) состояние и доступно драйверу, но до включения прерываний устройства. Параметр PreviousState определяет состояние питания устройства, в котором оно находилось до того, как оно перешло в состояние D0. Когда платформа впервые вызывает EvtDeviceD0Entry, она предоставляет значение PreviousStateWdfPowerDeviceD3Final.

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

Если функция обратного вызова EvtDeviceD0Entry возвращает значение состояния, для которого NT_SUCCESS(status) равно FALSE, платформа выполняет следующие действия:

Платформа не вызывает функцию обратного вызова EvtDeviceD0Exit драйвера в любой из этих ситуаций.

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

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

Функция обратного вызова EvtDeviceD0Entry вызывается в irQL = PASSIVE_LEVEL. Не следует делать эту функцию обратного вызова страничной.

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Минимальная версия UMDF 2,0
Верхняя часть wdfdevice.h (включая Wdf.h)
IRQL PASSIVE_LEVEL (см. раздел "Примечания")

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

EvtDeviceD0Exit