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


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

[Применимо к KMDF и UMDF]

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

Синтаксис

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

Параметры

[in] DeviceInit

Вызывающий указатель на структуру WDFDEVICE_INIT.

[in] IsPowerPolicyOwner

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

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

Никакой

Замечания

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

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

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

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

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

Дополнительные сведения о вызове WdfDeviceInitSetPowerPolicyOwnershipсм. в владения политикой питания.

Примеры

В следующем примере кода используется пример драйвера 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 (include 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