#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 переходит в спящий режим.