Я разработал драйвер устройства для устройства USB 1.1 в Windows 2000 и более поздних версиях с моделью драйвера Windows (WDM).
Моя проблема - довольно низкая производительность передачи при использовании 64-байтовых массовых передач. В зависимости от используемого хост-контроллера USB максимальная пропускная способность составляет 1000 пакетов (UHCI) или 2000 пакетов (OHCI) в секунду. Я разработал аналогичный драйвер для Linux Kernel 2.6 с округлением около 5000 пакетов в секунду.
Драйвер Linux использует до 10 асинхронных массовых передач, в то время как драйвер Windows использует 1 синхронную массовую передачу. Таким образом, сравнение показывает, что производительность плохая, но я уже пытался использовать асинхронные массовые передачи, но безуспешно (без увеличения производительности).
Есть ли у кого-нибудь советы и рекомендации по повышению производительности в Windows?