Самоучитель по программированию систем защиты

       

Быстрые мьютексы



Быстрые мьютексы



Быстрый мьютекс являются урезанным вариантом мьютекса, который не может быть рекурсивно захвачен. Поскольку быстрый мьютекс не является диспетчерским объектом, он не может использоваться функцией KeWaitForSingleObject() или KeWaitForMultipleObjects(). Вместо этого нужно использовать функцию ExAcquireFast Mutex(). Эквивалента быстрым мьютексам на пользовательском уровне нет, поэтому они могут использоваться только для синхронизации кода режима ядра.

Функции работы с быстрыми мьютексами:

  • 1. VOID ExInitializeFastMutex(IN PFAST_MUTEX FastMutex);

    2. VOID ExAcquireFastMutex(IN PFAST_MUTEX FastMutex);

    3. BOOLEAN ExTryToAcquireFastMutex(IN PFAST_MUTEX FastMutex);

    4. VOID ExReleaseFastMutex(IN PFAST_MUTEX FastMutex);

    5. VOID ExAcquireFastMutexUnsafe(IN PFAST_MUTEX FastMutex);

    6. VOID ExReleaseFastMutexUnsafe (IN PFAST_MUTEX FastMutex).

  •  



    Содержание раздела