привет. есть ndis protocol драйвер с очередями пакетов и ирп запросов на чтение. в юзер моде отдельным потоком выполняется постоянный вызов ReadFile. периодически возникает потребность в вызове WriteFile, но кое какая проблема.. если очередь принятых пакетов пуста, то я возвращаю в обработчике irp_read STATUS_PENDING и драйвер "залипает" до приёма нового пакета. в обработчике нового пакета просматривается очередь ИРП запросов на чтение и если такие есть, то записываю в буфер полученные данные. затем, наконец, происходит обработка irp_write. и вопрос - как мне организовать параллельную работу чтения/записи? я думал о двух вариантах: 1. если пакетов нет, то завершаем ирп запрос. тогда пройдёт WriteFile. но смущает то, что будут постоянные запросы юзер мод-драйвер 2. в драйвере както организовать параллельность работы при помощи создания отдельных потоков. какие хорошие,проверенные решения существуют?
Вообще не понял проблемы. Для того, чтобы обработать следующий запрос (т.е. Write у тебя), совершенно не обязательно завершать предыдущий (в твоём случае это Read), а если у тебя в приложении Read и Write шлются из разных потоков, то вообще не вижу никаких препятствий для параллельной работы всей схемы. Объясни проблему подробнее, пока не очень понятно.