[an error occurred while processing this directive]
|
1. Внимательно не вычитывал, но, есть, например, такие вещи - при создании устройства они делают свой собственный RemoveLock (сделали собственный, а лучше сделать стандартный). Инкрементируют позже, чем надо. Можно получить memory leak. Думаю, это не единственное место.
2. Bulk сделан синхронно, то есть никаких overlapped io не сделать. Запрос в драйвер ушел и ждем в драйвере завершения. Гораздо лучше подход, описанный в W.Oney, с установкой completion routine.
3. Interrupt сделан как Bulk, и, таким образом, смысл interrupt теряется. Если только период опроса не очень большой и приложение успевает опрашивать. Опять же, как делать interrupt - см. W.Oney и DDK. Все время должен висеть запрос на чтение на уровне драйвера.
4. Power они вообще не обрабатывают, для некоторых устройств может быть существенно.
С поддержкой изохронного режима не разбирался, поэтому сказать ничего не могу.
E-mail: info@telesys.ru