Принадлежность потока процессу

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

  1. AlexCasual

    AlexCasual New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2009
    Сообщения:
    120
    Собственно сабж:
    - как поределить какому процессу принадлежит поток?
    - как получить дерево процессов (как в ProcessExplorer)?
     
  2. Ezrah

    Ezrah Member

    Публикаций:
    0
    Регистрация:
    22 мар 2011
    Сообщения:
    411
    В ядре?
     
  3. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Функция IoThreadToProcess(). Если по ID, то сначала получить адрес объекта-потока вызовом PsLookupThreadByThreadId(). Если по хендлу, тогда сперва вызов ObReferenceObjectByHandle(). В обоих случаях не забыть потом про ObDereferenceObject().

    Сервис NtQuerySystemInformation() с классом SystemProcessesInformation, получишь полный список процессов и их потоков, ну а дальше по идентификаторам сопоставить уже не проблема. Это всё обсуждалось много раз, есть поиск на этом форуме, есть поиск на RSDN, есть Google, в конце концов, - попробуй, это не сложно.