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