Как заставить мой драйвер приостановить работу моего USB-устройства, когда Windows переходит в режим «подключенный режим ожидания»

#driver #device-driver #kmdf #wdf

#драйвер #устройство-драйвер #kmdf #wdf

Вопрос:

Я пытаюсь использовать OSR USB FX2 learning-kit на планшете x86 с Windows 10 и нахожу проблему, связанную с энергосбережением.

Программная среда:

  • Пример кода WDK10 kmdf_fx2
  • Версия WDK10 10.0.10240
  • Обновление Visual Studio 2015 1
  • Планшет под управлением Windows 10 x64 10586; powercfg /a показывает, что эти планшеты поддерживают «Подключенный режим ожидания«.

Я вижу следующее поведение. На планшете запустите

 osrusbfx2.exe -r 100
  

это приводит к блокировке EXE в синхронном ReadFile(). Затем коснитесь логотипа запуска Windows, выполните Включение питания -> Режим сна, экран планшета выключится, и я полагаю, что он перешел в спящий режим (по крайней мере, очень скоро перейдет в режим сна).

Подождите 10 секунд, 7-сегментный светодиод на плате OSR FX2 продолжает показывать «A», вместо того, чтобы превратиться в «S» (подразумевает приостановку). Подождите еще 100 секунд, все еще видя «A».

«A» означает, что фреймы SOF все еще активны на USB-проводе, что плохо сказывается на энергосбережении,

Напротив, если USB-клавиатура подключена к самому планшету. Спящий режим планшета остановит фреймы SOF (= USB suspend, я могу подтвердить это с помощью анализатора USB Beagle USB 480).

Мой вопрос ясен: как я могу изменить драйвер osrusbfx2, чтобы спящий режим планшета мог останавливать кадры SOF.

Некоторая справочная информация:

  • Если я просто подключу OSR FX2 к планшету, но не запускаю osrusbfx2.exe , FX2 перейдет в режим приостановки после 10 секунд ожидания, независимо от того, работает стол или находится в спящем режиме. Как драйвер клавиатуры достигает этого?
  • В системе Windows, которая не поддерживает режим «Подключенный режим ожидания», но традиционный режим ожидания S1 или S3, FX2 всегда будет приостанавливаться, когда Windows переходит в спящий режим.

Плата OSR USB FX2 продолжает показывать quot;Aquot; после перехода планшета в режим ожидания S0 в режим сна