WdfDeviceInitSetPowerPolicyOwnership 函数 (wdfdevice.h)
[适用于 KMDF 和 UMDF]
WdfDeviceInitSetPowerPolicyOwnership 方法确定调用驱动程序是否为指定设备的电源策略所有者。
语法
void WdfDeviceInitSetPowerPolicyOwnership(
[in] PWDFDEVICE_INIT DeviceInit,
[in] BOOLEAN IsPowerPolicyOwner
);
参数
[in] DeviceInit
调用方提供的指向 WDFDEVICE_INIT 结构的指针。
[in] IsPowerPolicyOwner
一个布尔值,指示调用驱动程序是否为电源策略所有者。 如果 为 TRUE,则调用驱动程序是电源策略所有者。 如果 为 FALSE,则它不是电源策略所有者。
返回值
无
备注
如果要编写基于框架的函数驱动程序,框架会自动将驱动程序建立为电源策略所有者。 (如果设备在原始模式下运行,则总线驱动程序是默认电源策略所有者。)
若要更改默认电源策略所有者,以下两个驱动程序必须调用 WdfDeviceInitSetPowerPolicyOwnership:
- 默认电源策略所有者必须在 IsPowerPolicyOwner 设置为 FALSE 的情况下调用 WdfDeviceInitSetPowerPolicyOwnership。
- 要成为电源策略所有者的驱动程序必须调用 WdfDeviceInitSetPowerPolicyOwnership ,并将 IsPowerPolicyOwner 设置为 TRUE。
每个堆栈中只能有一个驱动程序是电源策略所有者,因此必须确保只有一个驱动程序调用 WdfDeviceInitSetPowerPolicyOwnership 并将 IsPowerPolicyOwner 设置为 TRUE。
如果驱动程序调用 WdfDeviceInitSetPowerPolicyOwnership,则必须在调用 WdfDeviceCreate 之前执行此操作。 有关详细信息,请参阅 创建框架设备对象。
有关调用 WdfDeviceInitSetPowerPolicyOwnership 的详细信息,请参阅 Power Policy 所有权。
示例
以下代码示例来自 串行 示例驱动程序。 此示例检查注册表值以确定驱动程序是否应为电源策略所有者。 如果驱动程序不应是电源策略所有者,该示例将调用 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) |
Library | 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) |