SDT и SMP

Тема в разделе "WASM.NT.KERNEL", создана пользователем blockhead, 16 мар 2007.

  1. blockhead

    blockhead New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2007
    Сообщения:
    11
    Прочитал, что патчинк SDT не будет работать на SMP машинах (протестировать нет возможности, иначе не было бы вопроса). Вопрос, правда ли это? Если да, то с чем это связано (не могу понять связь)? Тот же вопрос про x64?
    Второй вопрос - адреса не эксортируемых ядром функций(например ZwWriteProcessMemory) можно получить только через SDT, или еще как - то?
     
  2. blockhead

    blockhead New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2007
    Сообщения:
    11
    Вопрос другого уровня - чем заменить cli/sti ? Чем отменять прерывания на всех процессорах системы ?
     
  3. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    Братец, ты чо болеешь ? Н акой тебе отменять прерывания ? поднимись на уровень, где нет свитчинга задач и оттуда всё делай. как один из вариантов встать в DPC - очередь на всех процессорах.
     
  4. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    blockhead
    Запустить DPC на всех процах, которая делает cli/sti.
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    имеешь ввиду IRQL?
    Не заметил, что k3internal это и написал, тогда приведу пример:
    Код (Text):
    1.     pDpcAr = (PKDPC)ExAllocatePool(NonPagedPool, KeNumberProcessors * sizeof(KDPC));
    2.     if (!pDpcAr)
    3.         return ;
    4.     for (i = 0; i < KeNumberProcessors; i++){
    5.         KeInitializeDpc(&pDpcAr[i], pFunction, NULL);
    6.         KeSetTargetProcessorDpc(&pDpcAr[i], i);
    7.         KeInsertQueueDpc(&pDpcAr[i], NULL, NULL);
    8.     }
     
  6. Error_Log

    Error_Log New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2005
    Сообщения:
    18
    Адрес:
    Украина
    Гы, если патч указателя происходит в одну ассемблерную инструкцию накой лочить проц?
    И в догонку, как насчет lock cmpxchg8b ? 8 байт попатчить можно. Для SDT этого и не надо.
     
  7. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Я использовал такой механизм для нескольких команд :P Не для cli/sti.