Функция 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. К дополнительным возвращаемым значениям относятся:
Код возврата | Описание |
---|---|
|
Обнаружен недопустимый параметр. |
|
Недостаточно памяти для завершения операции. |
Комментарии
Если драйвер вызывает 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) |