функция 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) |
Указывает тип политики автоматической приостановки; Параметр политики управления питанием должен быть указан вызывающим объектом в параметре Value .
Для автоматической приостановки параметр Value должен указывать на переменную UCHAR. Если значение равноTRUE (ненулевое), USB-стек приостанавливает работу устройства, если устройство неактивно. Устройство бездействует, если нет ожидающих передач или если единственными ожидающих передач являются передачи в прерванные или массовые конечные точки. Значение по умолчанию определяется значением, заданным в параметре реестра DefaultIdleState . По умолчанию это значение равно TRUE. |
SUSPEND_DELAY (0x83) |
Указывает тип политики приостановки и задержки; Параметр политики управления питанием должен быть указан вызывающим объектом в параметре Value .
Для приостановки и задержки значение должно указывать на переменную ULONG. Значение указывает минимальное время (в миллисекундах), в течение котором драйвер WinUSB должен ожидать после передачи, прежде чем он сможет приостановить устройство. Значение по умолчанию определяется значением, заданным в параметре реестра DefaultIdleTimeout . По умолчанию это значение равно пяти секундам. |
[in] ValueLength
Размер буфера со значением в байтах.
[in] Value
Новое значение параметра политики управления питанием. Тип данных и значение для значения зависят от типа политики управления питанием, переданной в PolicyType. Дополнительные сведения см. в разделе PolicyType.
Возвращаемое значение
WinUsb_SetPowerPolicy возвращает значение TRUE , если операция выполнена успешно. В противном случае эта функция возвращает значение FALSE, и вызывающий объект может получить зарегистрированную ошибку, вызвав Метод GetLastError.
GetLastError может вернуть следующий код ошибки.
Код возврата | Описание |
---|---|
|
Вызывающий объект передал значение NULL в параметре InterfaceHandle . |
|
Вызывающий объект передал недопустимый размер буфера параметров политики в параметре ValueLength . |
|
Указывает, что для выполнения операции недостаточно памяти. |
Комментарии
В следующем списке перечислены последствия изменений в состояниях управления питанием.
- Все дескрипторы канала, дескрипторы интерфейса, блокировки и альтернативные параметры сохраняются в событиях управления питанием.
- Все выполняющиеся передачи приостанавливаются при переходе устройства в состояние низкого энергопотребления и возобновляются при восстановлении устройства в рабочее состояние.
- Прежде чем клиент сможет восстановить конфигурацию конкретного устройства, устройство и система должны находиться в рабочем состоянии. Клиенты могут определить, находятся ли устройство и система в рабочем состоянии, из сообщения WM_POWERBROADCAST.
- Клиент может указать, что интерфейс неактивен, вызвав WinUsb_SetPowerPolicy.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | winusb.h (включая Winusb.h) |
Библиотека | Winusb.lib |
DLL | Winusb.dll |