WinUsb_SetPowerPolicy 函数 (winusb.h)
WinUsb_SetPowerPolicy 函数设置设备的电源策略。
语法
BOOL WinUsb_SetPowerPolicy(
[in] WINUSB_INTERFACE_HANDLE InterfaceHandle,
[in] ULONG PolicyType,
[in] ULONG ValueLength,
[in] PVOID Value
);
参数
[in] InterfaceHandle
设备上第一个 (默认) 接口的不透明句柄, WinUsb_Initialize返回。
[in] PolicyType
一个 值,该值指定要设置的电源策略。 下表描述了 winusbio.h 中定义的符号常量。
策略参数 | 说明 |
---|---|
AUTO_SUSPEND (0x81) |
指定自动挂起策略类型;power policy 参数必须由调用方在 Value 参数中指定。
对于自动挂起, Value 参数必须指向 UCHAR 变量。 如果 Value (非零) 为 TRUE ,则如果设备处于空闲状态,则 USB 堆栈会暂停设备。 如果没有挂起的传输,或者唯一挂起的传输是中断或批量终结点的 IN 传输,则设备处于空闲状态。 默认值由 DefaultIdleState 注册表设置中设置的值确定。 默认情况下,此值为 TRUE。 |
SUSPEND_DELAY (0x83) |
指定 suspend-delay 策略类型;power policy 参数必须由调用方在 Value 参数中指定。
对于暂停延迟, 值 必须指向 ULONG 变量。 值 指定 WinUSB 驱动程序在传输后必须等待的最短时间(以毫秒为单位),然后才能暂停设备。 默认值由 DefaultIdleTimeout 注册表设置中设置的值确定。 默认情况下,此值为 5 秒。 |
[in] ValueLength
Value 处缓冲区的大小(以字节为单位)。
[in] Value
电源策略参数的新值。 Value 的数据类型和值取决于 PolicyType 中传递的电源策略的类型。 有关详细信息,请参阅 PolicyType。
返回值
如果操作成功,WinUsb_SetPowerPolicy返回 TRUE。 否则,此函数返回 FALSE,调用方可以通过调用 GetLastError 检索记录的错误。
GetLastError 可以返回以下错误代码。
返回代码 | 说明 |
---|---|
|
调用方在 InterfaceHandle 参数中传递 NULL。 |
|
调用方为 ValueLength 参数中的策略参数缓冲区传递了无效大小。 |
|
指示内存不足,无法执行操作。 |
注解
以下列表汇总了更改对电源管理状态的影响:
- 所有管道句柄、接口句柄、锁和备用设置都会跨电源管理事件保留。
- 当设备传输到低功耗状态时,正在进行的任何传输将暂停,并在设备还原到工作状态时恢复。
- 设备和系统必须处于工作状态,客户端才能还原特定于设备的配置。 客户端可以通过WM_POWERBROADCAST消息确定设备和系统是否处于工作状态。
- 客户端可以通过调用 WinUsb_SetPowerPolicy 来指示接口处于空闲状态。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | winusb.h (包括 Winusb.h) |
Library | Winusb.lib |
DLL | Winusb.dll |