Снова о планировании задач

Тема в разделе "WASM.NT.KERNEL", создана пользователем diombre, 18 янв 2009.

  1. diombre

    diombre New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2009
    Сообщения:
    18
    Здравствуйте всем!

    После обработки прерывания необходимо передать данные приложению
    пользовательского режима. Для этого на данный момент используется
    относительно стандартный подход: DPC->SetEvent->WaitForSingleObject в
    потоке приложения->IOCTL забрали данные. При этом время задержки
    получения данных составляет около 1 мс, что вроде бы и не много, но хотелось
    бы быстрее. Существуют ли более быстрые методы доставки данных
    ISR->приложение? В принципе, речь не просто о доставке данных, а в общем
    случае получении управления потоком приложения по команде из ядра.

    Насколько я знаю, в Линуксе можно в ISR таймера установить высший
    приоритет какого-либо потока, выполнить shedule, тем самым поместив поток
    на 1-е место в очереди готовых на выполнение и по выходу из ISR данный
    поток начинает исполняться через несколько микросекунд. Как подобное
    совершить в винде?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    http://www.wasm.ru/article.php?article=keumc
     
  3. diombre

    diombre New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2009
    Сообщения:
    18
    Хорошая статья о KeUserModeCallback. Но для того чтобы использовать это
    мне нужно понизить IRQL до PASSIVE_LEVEL, а как это сделать после
    обработки прерывания?