синхронизация PASSIVE и DPC

Тема в разделе "WASM.NT.KERNEL", создана пользователем rpy3uH, 22 май 2011.

  1. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    драйвер принимает из сети дейтограммы (UDP), в обработчике ReceiveDatagram добавляю в lookaside лист структуру в которой есть вся инфа о полученном пакете, и делаю KeSetEvent. Поток висит на событии ждёт. Когда поток "спускается с тормоза" он обрабатывает данные, после обработки удаляет эту структурку из lookaside листа. Раньше я сталкивался только с синхронизацией двух потоков, делал всё через мьютекс, а вот как правильно синхронизировать PASSIVE и DPC не знаю. Главный вопрос: как синхронизировать DPC обработчик и поток чтобы они вместе не накуралесили с lookaside листом? и чтобы не было детских необжиданностей аля dead lock...
     
  2. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Использовать спинлоки.