может ли быть прервано выплонение сист. сервиса планировщиком?

Тема в разделе "WASM.NT.KERNEL", создана пользователем IceFire, 28 июн 2009.

  1. IceFire

    IceFire New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2006
    Сообщения:
    244
    Здравствуйте, уважаемые.

    Сделал сплайс kssdoit. Вопрос в следующем: может ли быть прервано выполнение внутри системного сервиса? И вызван другой сервис?

    Собственно, все просто. Делаю подобие профайлера ядра. Нужно время, номер сист сервиса и номер SDT. Время получаю до выполнения kssdoit. Сразу после - еще раз время, считаю разность. Если выполнение внутри сист. сервиса будет прервано - все измерения будут неверными.
     
  2. x64

    x64 New Member

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

    Чем встроенный профайлер не устраивает?
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    IceFire
    Да.
    > Теневые сервисы допускают и используют множественные рекурсивные вызовы. Это возврат в юзермод и вызов других сервисов.
    > Планирование исполняется при входе в сервисы, потоки переключаются.
    > Возможны програмная генерация исключений и аппаратные исключения, изза ошибок, они возникают переодически, хотя до возврата в юзермод никакие сервисы не будут вызваны(в случае не теневых).
    > Может быть вызван ZwTerminateProcess, в случае если изза невалидного стека потока ядро завершает процесс.
    > Сервисы вызываются при обработке других сервисов, в частности активно из Win32k(это Zw*).
    > Возможны вызовы сервисов после доставки апк, при его обработке. Например на сервисах ожидания. Нормально апк доставляется после возврата из сервиса.
    > Также возможны другие ситуации.
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Если имеется ввиду вызов сервисов планировщиком - в таком случае нет, он не использует сирвисы, если я правильно вопрос понял.
     
  5. IceFire

    IceFire New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2006
    Сообщения:
    244
    Спасибо, буду думать.
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Наверно изза этого у вас и падает дров при выгрузке - не соответствие числа входов в обработчик числу выходов.