В ядре NT есть ф-я KeEnterCriticalRegion, хочу узнать после ее вызова система гарантирует что процессор выполнит код корорый посте нее идет без обработки других потоков и процессов, только мой код вплоть до KeLeaveCriticalRegion? Если да, то касается это машин где стоит более 1 процессора?
The KeEnterCriticalRegion routine temporarily disables the delivery of normal kernel APCs; special kernel-mode APCs are still delivered
Назначь DPC на кажный процесор,повысь IRQ. Но если ты работаешь с подкачиваемой памятю то могут быть траблы.
Я заранее не знаю сколько процессоров на машине. Платформа хНТ Нет действия будут проводится незначительные, без использования выделения какой бы то нибыло памяти, но желательно чтобы проц выполнил мой код не отвлекаясь на другие треды. В принципе Мс рем все мне пояснил
KeNumberOfProcessors В атаче модуль для работы с мльтипроцессорными системами. Его функции GlobalLock и GlobalUnlock это имхо то что тебе надо. Но учти, что между их вызовами твой поток выполняется на DISPATCH_LEVEL _31813128__processor.rar