
В разделе «Управление питанием» есть функция «Выборочная приостановка», при которой Windows приостанавливает работу устройств по своему усмотрению для экономии энергии.
Есть ли способ вручную приостановить работу устройства, а не ждать выборочной приостановки?
Я пытаюсь протестировать конструкцию USB-устройства, чтобы оно могло правильно выходить из спящего режима.
решение1
В Windows USB Framework нет функции для приостановки USB-устройств по желанию. Эта функция была сочтена ненужной с точки зрения дизайнера Microsoft.
Однако для целей тестирования существует инструмент от USB-IF для выполнения SUSPEND (и пробуждения) и многих других изолированных функций на портах USB, в основном для вызова различных тестовых шаблонов для электрической характеристики. Он называетсяxHSETT. К сожалению, данная функция реализована в виде специального тестового драйвера USB, который заменяет стандартный стек и не имеет стандартной прикладной функциональности.
Также есть небольшая неприятность с этим драйвером: когда что-то пойдет не так и порты окажутся в каком-то неожиданном состоянии, тестовый драйвер не сможет выгрузиться, и система может застрять в этом тестовом режиме без базовой функциональности USB. Таким образом, вы не сможете управлять системой с помощью клавиатуры или мыши даже после перезагрузки системы. Чтобы система оставалась работоспособной, рекомендуется использовать тестовую систему с портом PS/2 или иметь дополнительную подключаемую карту PCIe-USB.
решение2
Если никакое приложение или служба не использует ваше устройство, обычно Windows переводит его в режим ожидания. Я работаю с устройством HID USB, и когда я закрываю его приложение, Windows переводит мое устройство в режим ожидания через несколько секунд.