Из ядра в usermode - LPC vs Pipe

Тема в разделе "WASM.NT.KERNEL", создана пользователем katrus, 20 май 2010.

  1. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Для синхронных "сигналов" из драйвера в пользоваqтельский режим обычно рекомендуют LPC. Посмотрел - LPC недокументирована в Windows XP, заказчик затрахает весь мозг - почему использую недокументированный API? Подумал о Pipe. В чем может быть подводные камни Pipe для данной цели?
     
  2. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Да ни в чём по сути, кроме того, что они медлены по сравнению, скажем, с APC той же, ну или с секциями.
     
  3. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Pipe работает медленнее чем LPC? Примерно насколько?
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    katrus
    Раза в два.
     
  5. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Кажется, нашел существенный недостаток в pipe (относительно LPC). Если есть несколько "писателей", будет сложно синхронизировать верный ответ от юзермодной компоненты к конкретному "писателю".
     
  6. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    И где тут проблема? Шли данные пакетами, в каждом пакете-запросе указывай ID писателя, в каждом ответе указывай, писателю с каким ID отвечаешь. Синхронизация тут как раз сложностей не составляет при правильной реализации, проблему я вижу в скорости только.
     
  7. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    katrus
    APC не желательно для применения, потенциальный способ исчерпать весь пул.
    x64
    Попробуйте выполнять в цикле добавление апк в очередь остановленного потока. В конце концов ось рухнет, на XP в юзермоде на это уходит несколько секунд при 512M.
     
  8. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    [​IMG]
    После того, как я прочитал твоё сообщение, моё лицо стало таким.
     
  9. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Какой APC? Речь вообще шла о LPC
     
  10. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    LPC обсуждать не интересно ибо недокументировано, плюс, если правильно помню, там ограничение на размер пакета, т.е. реально большие объёмы данных гонять проблематично будет. И непонятно вообще зачем тебе LPC при наличии кучи других (полу-)документированных возможностей?
     
  11. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    katrus
    x64 сказал про APC.
    x64
    Оо я думал вы русский :dntknw:
    Покажите эту кучу возможностей ?
     
  12. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    бгг в юмор.)