KeEnterCriticalRegion

Тема в разделе "WASM.WIN32", создана пользователем Guest, 14 янв 2006.

  1. Guest

    Guest Guest

    Публикаций:
    0
    В ядре NT есть ф-я KeEnterCriticalRegion, хочу узнать после ее вызова система гарантирует что процессор выполнит код корорый посте нее идет без обработки других потоков и процессов, только мой код вплоть до KeLeaveCriticalRegion?



    Если да, то касается это машин где стоит более 1 процессора?
     
  2. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    The KeEnterCriticalRegion routine temporarily disables the delivery of normal kernel APCs; special kernel-mode APCs are still delivered
     
  3. MegaZu

    MegaZu New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2005
    Сообщения:
    290
    Назначь DPC на кажный процесор,повысь IRQ. Но если ты работаешь с подкачиваемой памятю то могут быть траблы.
     
  4. Guest

    Guest Guest

    Публикаций:
    0


    Я заранее не знаю сколько процессоров на машине. Платформа хНТ





    Нет действия будут проводится незначительные, без использования выделения какой бы то нибыло памяти, но желательно чтобы проц выполнил мой код не отвлекаясь на другие треды. В принципе Мс рем все мне пояснил
     
  5. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"


    KeNumberOfProcessors





    В атаче модуль для работы с мльтипроцессорными системами.

    Его функции GlobalLock и GlobalUnlock это имхо то что тебе надо. Но учти, что между их вызовами твой поток выполняется на DISPATCH_LEVEL





    [​IMG] _31813128__processor.rar
     
  6. Guest

    Guest Guest

    Публикаций:
    0
    Ms Rem

    Спасибо за пример, но мне пока он не по силам. Попробую обойтись своими средствами. Спасибо