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


функция 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 может вернуть следующий код ошибки.

Код возврата Описание
ERROR_INVALID_HANDLE
Вызывающий объект передал значение NULL в параметре InterfaceHandle .
ERROR_INVALID_PARAMETER
Вызывающий объект передал недопустимый размер буфера параметров политики в параметре ValueLength .
ERROR_NOT_ENOUGH_MEMORY
Указывает, что для выполнения операции недостаточно памяти.

Комментарии

В следующем списке перечислены последствия изменений в состояниях управления питанием.

  • Все дескрипторы канала, дескрипторы интерфейса, блокировки и альтернативные параметры сохраняются в событиях управления питанием.
  • Все выполняющиеся передачи приостанавливаются при переходе устройства в состояние низкого энергопотребления и возобновляются при восстановлении устройства в рабочее состояние.
  • Прежде чем клиент сможет восстановить конфигурацию конкретного устройства, устройство и система должны находиться в рабочем состоянии. Клиенты могут определить, находятся ли устройство и система в рабочем состоянии, из сообщения WM_POWERBROADCAST.
  • Клиент может указать, что интерфейс неактивен, вызвав WinUsb_SetPowerPolicy.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть winusb.h (включая Winusb.h)
Библиотека Winusb.lib
DLL Winusb.dll

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

WinUSB

Функции WinUSB

Управление питанием WinUSB

WinUsb_Initialize