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

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

Метод WdfDeviceInitSetPowerPolicyOwnership определяет, является ли вызывающий драйвер владельцем политики питания для указанного устройства.

Синтаксис

void WdfDeviceInitSetPowerPolicyOwnership(
  [in] PWDFDEVICE_INIT DeviceInit,
  [in] BOOLEAN         IsPowerPolicyOwner
);

Параметры

[in] DeviceInit

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

[in] IsPowerPolicyOwner

Логическое значение, указывающее, является ли вызывающий драйвер владельцем политики питания. Если задано значение TRUE, вызывающий драйвер является владельцем политики управления питанием. Значение FALSE не является владельцем политики управления питанием.

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

None

Remarks

Если вы создаете драйвер функций на основе платформы, платформа автоматически устанавливает драйвер в качестве владельца политики управления питанием. (Если устройство работает в необработанном режиме, водитель шины является владельцем политики питания по умолчанию.)

Чтобы изменить владельца политики питания по умолчанию, следующие два драйвера должны вызвать WdfDeviceInitSetPowerPolicyOwnership:

  • Владелец политики управления питанием по умолчанию должен вызывать WdfDeviceInitSetPowerPolicyOwnership , а для IsPowerPolicyOwnerзадано значение FALSE.
  • Драйвер, который должен быть владельцем политики управления питанием, должен вызывать WdfDeviceInitSetPowerPolicyOwnership , а для IsPowerPolicyOwner задано значение TRUE.
Если вы пишете драйвер шины на основе платформы или драйвер фильтра, а устройство не работает в необработанном режиме, ваш драйвер не будет владельцем политики питания, если он не вызовет WdfDeviceInitSetPowerPolicyOwnership.

Только один драйвер в каждом стеке может быть владельцем политики питания, поэтому необходимо убедиться, что только один драйвер вызывает WdfDeviceInitSetPowerPolicyOwnership , а для IsPowerPolicyOwner задано значение TRUE.

Если драйвер вызывает WdfDeviceInitSetPowerPolicyOwnership, он должен сделать это перед вызовом WdfDeviceCreate. Дополнительные сведения см. в разделе Создание объекта устройства платформы.

Дополнительные сведения о вызове WdfDeviceInitSetPowerPolicyOwnership см. в разделе Power Policy Ownership.

Примеры

Следующий пример кода приведен в примере драйвера Serial . В этом примере проверяется значение реестра, чтобы определить, должен ли драйвер быть владельцем политики управления питанием. Если драйвер не должен быть владельцем политики управления питанием, в примере вызывается WdfDeviceInitSetPowerPolicyOwnership.

//
// Call subroutine that checks a registry value.
//
SerialGetFdoRegistryKeyValue(
                             DeviceInit,
                             L"SerialRelinquishPowerPolicy",
                             &relinquishPowerPolicy
                             );
//
// If the registry value is TRUE, do not own power policy.
//
if(relinquishPowerPolicy) {
    WdfDeviceInitSetPowerPolicyOwnership(
                                         DeviceInit,
                                         FALSE
                                         );
}

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Минимальная версия UMDF 2,0
Верхняя часть wdfdevice.h (включая Wdf.h)
Библиотека Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
Правила соответствия DDI ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), FDOPowerPolicyOwnerAPI(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf)

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

WdfDeviceCreate