Привет,
Решил написать драйвер для Windows для простой карточки и сижу читаю пару книжек Oney и Солдатова. вообщем ломаю голову и попиваю чаек. Вроде бы понемногу все становится ясным, так что скоро уже начну что-нибудь писать, а вернее ломать какой-нибудь более подходящий
Хотелось бы спросить о StartIo c очередью необработанных запросов
1. Пусть карточка не имеет прерываний и DMA. Если карточка быстрая ( при запросе драйвер читает пару — тройку регистров, что-то немного вычисляет и отдает ответ), то я так понимаю, что мне не надо StartIo. Также если придет несколько запросов диспечеру ввода-вывода, то он обеспечит очередность к драйверу. Прав ли я? Если какие-нибудь временные критерии для этого?
Если же карточка медленная (запустила и что-то ждет), то мне надо StartIo и все остальное хозяйство к ней.
2. Пусть карточка имеет еще и прерывание, но не имеет DMA.
Карточка у меня быстрая, но на входе у нее приходят события, которые перезаписывают данные. Это связано с прерыванием. В этом случае прикладная программа может захотет "проснуться" по приходу события от прерывания. Это тоже не связано с StartIo?
3. Ну с DMA карточка по определению медленная. Поэтому нужна и StartIo.