KeEnterCriticalRegion

Discussion in 'WASM.WIN32' started by Guest, Jan 14, 2006.

  1. Guest

    Guest Guest

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



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

    Ms Rem New Member

    Blog Posts:
    0
    Joined:
    Apr 17, 2005
    Messages:
    1,057
    Location:
    С планеты "Земля"
    The KeEnterCriticalRegion routine temporarily disables the delivery of normal kernel APCs; special kernel-mode APCs are still delivered
     
  3. MegaZu

    MegaZu New Member

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

    Guest Guest

    Blog Posts:
    0


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





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

    Ms Rem New Member

    Blog Posts:
    0
    Joined:
    Apr 17, 2005
    Messages:
    1,057
    Location:
    С планеты "Земля"


    KeNumberOfProcessors





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

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





    [​IMG] _31813128__processor.rar
     
  6. Guest

    Guest Guest

    Blog Posts:
    0
    Ms Rem

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