Driver почти реалтайм

Тема в разделе "WASM.WIN32", создана пользователем cemen, 9 янв 2006.

  1. cemen

    cemen New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2006
    Сообщения:
    11
    Адрес:
    Russia
    Здравствуйте,господа.У меня есть такой вопрос-мне нужно под одно из устройств написать драйвер,причём в одной точке нужно прочитать данные из ком-порта и вернуть ответ обратно не больше чем за 10 мсек.Как это лучше всего сделать,чтобы 100% не вылетали тайм-ауты?
     
  2. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    Просто. Перехват непосредственнов IDT, поскольку если ты присоединишь объект прерывания в цепочку, мала вероятность, что до тебя быстро дойдёт очередь. В обработчике не разрешай прерывания от аппаратуры, покуда не сделаешь свои дела, в принципе прерывание ком-порта выше него только железные остались. Так что я не вижу никаких проблем. Кроме того, обработчик сам должен быть минимальным и быстрым, иначе может случиться деградация системы. Остерегайся в эти моменты работать с PagedPool, поскольку страничку в эти моменты тебе никто не подкачает.
     
  3. Iceberg

    Iceberg New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2005
    Сообщения:
    54
    Адрес:
    Санкт-Петербург
    CARDINAL

    10 мсек более чем реально, чтобы дошла очередь
     
  4. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    Iceberg

    и плюсуй сюда время на обработку прерывания и передача ответа железу.
     
  5. cemen

    cemen New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2006
    Сообщения:
    11
    Адрес:
    Russia
    Ещё вопрос:как писать в порт и читать из него?На уровне аппаратуры и портов делать нехорошо,надо обращаться к драйверу кома,потому что может быть аппарат вида USB to COM.Как делать-через ZwWriteFile,например,или самому лучше делать IRP пакеты чтения-записи для записи в порт?

    ТОгда драйвер прийдётся ставить в стек.
     
  6. cemen

    cemen New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2006
    Сообщения:
    11
    Адрес:
    Russia
    Ещё вопрос.Выставляю в win32 приложении приоритет:

    SetPriorityClass(GetCurrentProcess,REALTIME_PRIORITY_CLASS);

    Возвращает ошибку.Почему?
     
  7. cemen

    cemen New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2006
    Сообщения:
    11
    Адрес:
    Russia
    Ещё вопрос.Выставляю в win32 приложении приоритет:

    SetPriorityClass(GetCurrentProcess,REALTIME_PRIORITY_CLASS);

    Возвращает ошибку.Почему?
     
  8. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow


    правов у тебя нет таких