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


Функция WdfDeviceInitRegisterPowerStateChangeCallback (wdfdevice.h)

[Применяется только к KMDF]

Примечание

Этот метод предназначен только для внутреннего использования майкрософт.

Метод WdfDeviceInitRegisterPowerStateChangeCallback регистрирует функцию обратного вызова событий, предоставляемую драйвером, которую платформа вызывает при изменении состояния конечного автомата питания устройства.

Синтаксис

NTSTATUS WdfDeviceInitRegisterPowerStateChangeCallback(
  [in] PWDFDEVICE_INIT                                DeviceInit,
  [in] WDF_DEVICE_POWER_STATE                         PowerState,
  [in] PFN_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION EvtDevicePowerStateChange,
  [in] ULONG                                          CallbackTypes
);

Параметры

[in] DeviceInit

Указатель на структуру WDFDEVICE_INIT , предоставленный вызывающим.

[in] PowerState

Перечислитель WDF_DEVICE_POWER_STATE , определяющий состояние power machine, для которого драйвер запрашивает уведомление.

[in] EvtDevicePowerStateChange

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

[in] CallbackTypes

Комбинация WDF_STATE_NOTIFICATION_TYPE типизированных перечислителей ORed.

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

Если операция выполнена успешно, WdfDeviceInitRegisterPowerStateChangeCallback возвращает STATUS_SUCCESS. К дополнительным возвращаемым значениям относятся:

Код возврата Описание
STATUS_INVALID_PARAMETER
Обнаружен недопустимый параметр.
STATUS_INSUFFICIENT_RESOURCES
Недостаточно памяти для завершения операции.

Комментарии

Если драйвер вызывает WdfDeviceInitRegisterPowerStateChangeCallback, он должен сделать это перед вызовом WdfDeviceCreate.

Дополнительные сведения о вызове WdfDeviceCreate см. в разделе Конечные машины в платформе.

Примеры

В следующем примере кода регистрируется функция обратного вызова события, которая будет вызываться платформой при изменении состояния конечного автомата power.

status = WdfDeviceInitRegisterPowerStateChangeCallback(
                                     DeviceInit,
                                     WdfDevStatePowerD0StartingConnectInterrupt,
                                     PciDrvPowerStateChangeCallback,
                                     StateNotificationAllStates
                                     );

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Верхняя часть wdfdevice.h (включая Wdf.h)
Библиотека Wdf01000.sys (см. раздел Управление версиями библиотеки платформы).
IRQL PASSIVE_LEVEL
Правила соответствия DDI ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)