"пометить" поток

Discussion in 'WASM.NT.KERNEL' started by katrus, Jan 26, 2009.

  1. katrus

    katrus New Member

    Blog Posts:
    0
    Предположим стоит следующая задача: в режиме пользователя пометить несколько потоков, в ядре пройтись по всем потокам и подсчитать количество помченных. Первое, что пришло в голову - залезть в контекст потока и пометить там "магическое" число. Но непонятно, как можно добратся до этого контекста из режима пользователя. Попробовал Set/Get ThreadContext, вроде обе функции возвращают TRUE, но необходимого эффекта не дают. Может есть более прямой способ.
     
  2. Flasher

    Flasher Member

    Blog Posts:
    0
    В TEB'е какой-нить ненужный флаг под себя переделай.
    ZwQueryInformationThread\ZwSetInformationThread - ThreadBasicInformation
     
  3. s0larian

    s0larian New Member

    Blog Posts:
    0
    katrus, а что, передать себе в драйвер ID процессов и потоков слабо?
     
  4. katrus

    katrus New Member

    Blog Posts:
    0
    не слабо, но муторно держать в ядре базу данных потоков, следить ккаой поток открылся, закрылся, и т.д.

    Нашел элегантное решение: в начале "помеченного" потока прописываю код "подпись", которыы сам по себе ничего не делает, но легко может быть определен из ядра.
     
  5. n0name

    n0name New Member

    Blog Posts:
    0
    фигасе элегантное.
    особенно интересен пункт "начало потока".
    Этот способ имеет кучу минусов.
    Лучше как тебе сказали юзать неиспользуемые или редкоиспользуемые поля в TEB'е.