Функция WdfDeviceWdmAssignPowerFrameworkSettings (wdfdevice.h)
[Относится к KMDF и UMDF]
Метод WdfDeviceWdmAssignPowerFrameworkSettings регистрирует параметры платформы управления питанием (PoFx) для однокомпонентных устройств.
Синтаксис
NTSTATUS WdfDeviceWdmAssignPowerFrameworkSettings(
[in] WDFDEVICE Device,
[in] PWDF_POWER_FRAMEWORK_SETTINGS PowerFrameworkSettings
);
Параметры
[in] Device
Дескриптор объекта устройства платформы, для которого задаются параметры PoFx.
[in] PowerFrameworkSettings
Указатель на структуру WDF_POWER_FRAMEWORK_SETTINGS , описывающую параметры PoFx клиентского драйвера.
Возвращаемое значение
Метод WdfDeviceWdmAssignPowerFrameworkSettings возвращает значение NTSTATUS, указывающее на успешное или неудачное выполнение операции.
Код возврата | Описание |
---|---|
|
Неправильный размер структуры WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS . |
|
Вызывающий драйвер не является владельцем политики питания устройства. |
|
Обнаружено недопустимое значение параметров . |
Этот метод также может возвращать другие значения NTSTATUS.
Комментарии
Метод WdfDeviceWdmAssignPowerFrameworkSettings применяется только к однокомпонентным устройствам.
Перед вызовом этого метода драйвер клиента должен успешно вызвать WdfDeviceAssignS0IdleSettings и задать для поля IdleTimeoutType структуры WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS значение SystemManagedIdleTimeout или SystemManagedIdleTimeoutWithHint.
Драйвер должен вызывать WdfDeviceWdmAssignPowerFrameworkSettings до или во время первого запуска устройства. Так как устройство может запускаться несколько раз, например при повторной балансировке ресурсов, драйвер может вызвать этот метод из evtDriverDeviceAdd или EvtDeviceSelfManagedIoInit. Платформа вызывает эти функции только один раз, даже если устройство запускается несколько раз.
Кроме того, драйвер может отслеживать, вызывал ли он уже WdfDeviceWdmAssignPowerFrameworkSettings, и вызывать его из одной из следующих функций обратного вызова: EvtDevicePrepareHardware, EvtDeviceD0Entry, EvtDeviceD0EntryPostInterruptsEnabled или EvtDeviceSelfManagedIoRestart.
Если драйвер вызывает WdfDeviceWdmAssignPowerFrameworkSettings несколько раз, платформа создает ошибку средства проверки.
Платформа управления питанием (PoFx) доступна только в Windows 8 и более поздних версиях. При запуске в операционной системе, которая не поддерживает PoFx, WdfDeviceWdmAssignPowerFrameworkSettings не выполняет никаких действий и возвращает STATUS_SUCCESS.
Дополнительные сведения см. в разделах Поддержка функциональных состояний питания и Обзор платформы управления питанием.
Примеры
В следующем примере кода драйвер инициализирует структуру WDF_POWER_FRAMEWORK_SETTINGS путем вызова функции WDF_POWER_FRAMEWORK_SETTINGS_INIT . Затем драйвер вручную задает некоторые элементы структуры, а затем вызывает WdfDeviceWdmAssignPowerFrameworkSettings.
NTSTATUS status;
WDF_POWER_FRAMEWORK_SETTINGS poFxSettings;
WDF_POWER_FRAMEWORK_SETTINGS_INIT(&poFxSettings);
poFxSettings.EvtDeviceWdmPostPoFxRegisterDevice =
SingleCompWdmEvtDeviceWdmPostPoFxRegisterDevice;
poFxSettings.EvtDeviceWdmPrePoFxUnregisterDevice =
SingleCompWdmEvtDeviceWdmPrePoFxUnregisterDevice;
poFxSettings.Component = &component;
poFxSettings.ComponentIdleStateCallback =
SingleCompWdmIdleStateCallback;
poFxSettings.PoFxDeviceContext = (PVOID) Device;
status = WdfDeviceWdmAssignPowerFrameworkSettings(Device, &poFxSettings);
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 |
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1.11 |
Минимальная версия UMDF | 2.33 |
Верхняя часть | wdfdevice.h (включая Wdf.h) |
Библиотека | Wdf01000.sys (см. раздел Управление версиями библиотеки платформы). |
IRQL | PASSIVE_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf) |
См. также раздел
EvtDeviceWdmPostPoFxRegisterDevice