Функции синхронизации

В синхронизации используются следующие функции.

Асинхронные функции

Асинхронная функция Описание
APCProc Определяемая приложением функция обратного вызова, используемая с функцией QueueUserAPC .
GetOverlappedResult Извлекает результаты перекрывающейся операции.
GetOverlappedResultEx Извлекает результаты перекрывающейся операции в течение указанного интервала времени ожидания.
QueueUserAPC Добавляет объект асинхронного вызова процедур пользовательского режима (APC) в очередь APC указанного потока.

 

Функции блокировки переменной условия и SRW

Переменная условия и функция блокировки SRW Описание
AcquireSRWLockExclusive Получает тонкую блокировку средства чтения и записи (SRW) в монопольном режиме.
AcquireSRWLockShared Получает тонкую блокировку средства чтения и записи (SRW) в общем режиме.
InitializeConditionVariable Инициализирует переменную условия.
InitializeSRWLock Инициализация тонкой блокировки средства чтения или записи (SRW).
ReleaseSRWLockExclusive Освобождает тонкую блокировку средства чтения и записи (SRW), которая была приобретена в монопольном режиме.
ReleaseSRWLockShared Освобождает тонкую блокировку средства чтения и записи (SRW), которая была получена в общем режиме.
SleepConditionVariableCS Переходит в спящий режим для указанной переменной условия и освобождает указанный критический раздел как атомарную операцию.
SleepConditionVariableSRW Переходит в спящий режим для указанной переменной условия и освобождает указанную блокировку как атомарную операцию.
TryAcquireSRWLockExclusive Пытается получить блокировку тонкого средства чтения и записи (SRW) в монопольном режиме. Если вызов выполнен успешно, вызывающий поток берет на себя ответственность за блокировку.
TryAcquireSRWLockShared Пытается получить блокировку средства чтения и записи (SRW) в общем режиме. Если вызов выполнен успешно, вызывающий поток берет на себя ответственность за блокировку.
WakeAllConditionVariable Пробуждение всех потоков, ожидающих указанной переменной условия.
WakeConditionVariable Пробуждение одного потока, ожидающих указанной переменной условия.

 

Функции критических разделов

Функция критического раздела Описание
DeleteCriticalSection Освобождает все ресурсы, используемые объектом критического раздела без владельца.
EnterCriticalSection Ожидает владельца указанного объекта критического раздела.
InitializeCriticalSection Инициализирует объект критического раздела.
InitializeCriticalSectionAndSpinCount Инициализирует объект критического раздела и задает число спинов для критического раздела.
InitializeCriticalSectionEx Инициализирует объект критического раздела с числом спинов и необязательными флагами.
LeaveCriticalSection Освобождает владение указанным объектом критического раздела.
SetCriticalSectionSpinCount Задает число спинов для указанного критического раздела.
TryEnterCriticalSection Пытается войти в критически важный раздел без блокировки.

 

Функции событий

Функция event Описание
CreateEvent Создает или открывает именованный или неименованный объект события.
CreateEventEx Создает или открывает именованный или неименованный объект события и возвращает дескриптор объекту .
OpenEvent Открывает существующий именованный объект события.
PulseEvent Устанавливает для указанного объекта события состояние сигнального, а затем сбрасывает его в состояние без знака после освобождения соответствующего количества ожидающих потоков.
ResetEvent Задает для указанного объекта события состояние без знака.
SetEvent Задает для указанного объекта события состояние сигнального.

 

Функции одноразовой инициализации

Функция одноразовой инициализации Описание
InitOnceBeginInitialize Начинает одноразовую инициализацию.
InitOnceComplete Завершает одноразовую инициализацию.
InitOnceExecuteOnce Один раз выполняет указанную функцию. Никакие другие потоки, указывающие одну и ту же структуру однократной инициализации, не могут выполнять эту функцию во время ее выполнения текущим потоком.
InitOnceInitialize Инициализирует структуру однократной инициализации.

 

Функции с блокировкой

Функция Interlocked Описание
InterlockedAdd Выполняет атомарную операцию сложения для указанных значений LONG .
InterlockedAddAcquire Выполняет атомарную операцию сложения для указанных значений LONG . Операция выполняется семантикой упорядочения памяти.
InterlockedAddRelease Выполняет атомарную операцию сложения для указанных значений LONG . Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedAddNoFence Выполняет атомарную операцию сложения для указанных значений LONG . Операция выполняется атомарно, но без использования барьеров памяти
InterlockedAdd64 Выполняет атомарную операцию сложения для указанных значений LONGLONG .
InterlockedAddAcquire64 Выполняет атомарную операцию сложения для указанных значений LONGLONG . Операция выполняется семантикой упорядочения памяти.
InterlockedAddRelease64 Выполняет атомарную операцию сложения для указанных значений LONGLONG . Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedAddNoFence64 Выполняет атомарную операцию сложения для указанных значений LONGLONG . Операция выполняется атомарно, но без использования барьеров памяти
InterlockedAnd Выполняет атомарную операцию AND с указанными значениями LONG .
InterlockedAndAcquire Выполняет атомарную операцию AND с указанными значениями LONG . Операция выполняется семантикой упорядочения памяти.
InterlockedAndRelease Выполняет атомарную операцию AND с указанными значениями LONG . Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedAndNoFence Выполняет атомарную операцию AND с указанными значениями LONG . Операция выполняется атомарно, но без использования барьеров памяти
InterlockedAnd8 Выполняет атомарную операцию AND с указанными значениями char .
InterlockedAnd8Acquire Выполняет атомарную операцию AND с указанными значениями char . Операция выполняется семантикой упорядочения памяти.
InterlockedAnd8Release Выполняет атомарную операцию AND с указанными значениями char . Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedAnd8NoFence Выполняет атомарную операцию AND с указанными значениями char . Операция выполняется атомарно, но без использования барьеров памяти
InterlockedAnd16 Выполняет атомарную операцию AND для указанных значений SHORT .
InterlockedAnd16Acquire Выполняет атомарную операцию AND для указанных значений SHORT . Операция выполняется семантикой упорядочения памяти.
InterlockedAnd16Release Выполняет атомарную операцию AND для указанных значений SHORT . Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedAnd16NoFence Выполняет атомарную операцию AND для указанных значений SHORT . Операция выполняется атомарно, но без использования барьеров памяти
InterlockedAnd64 Выполняет атомарную операцию AND с указанными значениями LONGLONG .
InterlockedAnd64Acquire Выполняет атомарную операцию AND с указанными значениями LONGLONG . Операция выполняется семантикой упорядочения памяти.
InterlockedAnd64Release Выполняет атомарную операцию AND с указанными значениями LONGLONG . Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedAnd64NoFence Выполняет атомарную операцию AND с указанными значениями LONGLONG . Операция выполняется атомарно, но без использования барьеров памяти
InterlockedBitTestAndComplement Проверяет указанный бит указанного значения LONG и дополняет его.
InterlockedBitTestAndComplement64 Проверяет указанный бит указанного значения LONG64 и дополняет его. Операция является атомарной
InterlockedBitTestAndResetAcquire Проверяет указанный бит указанного значения LONG и устанавливает для него значение 0. Операция является атомарной и выполняется с семантикой упорядочения памяти.
InterlockedBitTestAndResetRelease Проверяет указанный бит указанного значения LONG и устанавливает для него значение 0. Операция является атомарной и выполняется с использованием семантики выпуска памяти.
InterlockedBitTestAndSetAcquire Проверяет указанный бит указанного значения LONG и устанавливает для него значение 1. Операция является атомарной и выполняется с семантикой упорядочения памяти.
InterlockedBitTestAndSetRelease Проверяет указанный бит указанного значения LONG и устанавливает для него значение 1. Операция является атомарной и выполняется с семантикой упорядочения памяти выпуска
InterlockedBitTestAndReset Проверяет указанный бит указанного значения LONG и устанавливает для него значение 0.
InterlockedBitTestAndReset64 Проверяет указанный бит указанного значения LONG64 и устанавливает для него значение 0.
InterlockedBitTestAndSet Проверяет указанный бит указанного значения LONG и устанавливает для него значение 1.
InterlockedBitTestAndSet64 Проверяет указанный бит указанного значения LONG64 и устанавливает для него значение 1.
InterlockedCompare64Exchange128 Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает указанные 64-разрядные значения и обменивается данными с указанным 128-разрядным значением на основе результата сравнения.
InterlockedCompare64ExchangeAcquire128 Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает указанные 64-разрядные значения и обменивается данными с указанным 128-разрядным значением на основе результата сравнения. Операция выполняется семантикой упорядочения памяти.
InterlockedCompare64ExchangeRelease128 Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает указанные 64-разрядные значения и обменивается данными с указанным 128-разрядным значением на основе результата сравнения. Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedCompareExchange Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 32-разрядных значения и обменивается с другим 32-разрядным значением на основе результата сравнения.
InterlockedCompareExchangeAcquire Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 32-разрядных значения и обменивается с другим 32-разрядным значением на основе результата сравнения. Операция выполняется семантикой упорядочения памяти.
InterlockedCompareExchangeRelease Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 32-разрядных значения и обменивается с другим 32-разрядным значением на основе результата сравнения. Обмен выполняется семантикой упорядочения памяти выпуска.
InterlockedCompareExchangeNoFence Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 32-разрядных значения и обменивается с другим 32-разрядным значением на основе результата сравнения. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedCompareExchange64 Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 64-разрядных значения и обменивается с другим 64-разрядным значением на основе результатов сравнения.
InterlockedCompareExchangeAcquire64 Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 64-разрядных значения и обменивается с другим 64-разрядным значением на основе результатов сравнения. Обмен выполняется семантикой упорядочения памяти.
InterlockedCompareExchangeRelease64 Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 64-разрядных значения и обменивается с другим 64-разрядным значением на основе результатов сравнения. Обмен выполняется семантикой упорядочения памяти выпуска.
InterlockedCompareExchangeNoFence64 Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 64-разрядных значения и обменивается с другим 64-разрядным значением на основе результатов сравнения. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedCompareExchange16 Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 16-разрядных значения и обменивается с другим 16-разрядным значением на основе результата сравнения.
InterlockedCompareExchange16Acquire Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 16-разрядных значения и обменивается с другим 16-разрядным значением на основе результатов сравнения. Операция выполняется с семантикой упорядочения памяти.
InterlockedCompareExchange16Release Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 16-разрядных значения и обменивается с другим 16-разрядным значением на основе результатов сравнения. Обмен выполняется семантикой упорядочения памяти выпуска
InterlockedCompareExchange16NoFence Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 16-разрядных значения и обменивается с другим 16-разрядным значением на основе результатов сравнения. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedCompareExchange128 Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 128-разрядных значения и обменивается с другим 128-разрядным значением на основе результата сравнения.
InterlockedCompareExchangePointer Выполняет атомарную операцию сравнения и обмена с указанными значениями указателя. Функция сравнивает два указанных значения указателя и обменивается данными с другим значением указателя на основе результатов сравнения.
InterlockedCompareExchangePointerAcquire Выполняет атомарную операцию сравнения и обмена с указанными значениями указателя. Функция сравнивает два указанных значения указателя и обменивается данными с другим значением указателя на основе результатов сравнения. Операция выполняется семантикой упорядочения памяти.
InterlockedCompareExchangePointerRelease Выполняет атомарную операцию сравнения и обмена с указанными значениями указателя. Функция сравнивает два указанных значения указателя и обменивается данными с другим значением указателя на основе результатов сравнения. Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedCompareExchangePointerNoFence Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных значения указателя и обменивается данными с другим значением указателя на основе результатов сравнения. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedDecrement Уменьшает (уменьшает на единицу) значение указанной 32-разрядной переменной в качестве атомарной операции.
InterlockedDecrementAcquire Уменьшает (уменьшает на единицу) значение указанной 32-разрядной переменной в качестве атомарной операции. Операция выполняется семантикой упорядочения памяти.
InterlockedDecrementRelease Уменьшает (уменьшает на единицу) значение указанной 32-разрядной переменной в качестве атомарной операции. Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedDecrementNoFence Уменьшает (уменьшает на единицу) значение указанной 32-разрядной переменной в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedDecrement16 Уменьшает (уменьшает на единицу) значение указанной 16-разрядной переменной в качестве атомарной операции.
InterlockedDecrement16Acquire Уменьшает (уменьшает на единицу) значение указанной 16-разрядной переменной в качестве атомарной операции. Операция выполняется с семантикой упорядочения памяти.
InterlockedDecrement16Release Уменьшает (уменьшает на единицу) значение указанной 16-разрядной переменной в качестве атомарной операции. Операция выполняется семантикой упорядочения памяти выпуска
InterlockedDecrement16NoFence Уменьшает (уменьшает на единицу) значение указанной 16-разрядной переменной в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedDecrement64 Уменьшает (уменьшает на единицу) значение указанной 64-разрядной переменной в качестве атомарной операции.
InterlockedDecrementAcquire64 Уменьшает (уменьшает на единицу) значение указанной 64-разрядной переменной в качестве атомарной операции. Операция выполняется семантикой упорядочения памяти.
InterlockedDecrementRelease64 Уменьшает (уменьшает на единицу) значение указанной 64-разрядной переменной в качестве атомарной операции. Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedDecrementNoFence64 Уменьшает (уменьшает на единицу) значение указанной 64-разрядной переменной в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedExchange Задает для 32-разрядной переменной указанное значение в качестве атомарной операции.
InterlockedExchangeAcquire Задает для 32-разрядной переменной указанное значение в качестве атомарной операции. Операция выполняется семантикой упорядочения памяти.
InterlockedExchangeNoFence Задает для 64-разрядной переменной указанное значение в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedExchange8 Задает для 8-разрядной переменной указанное значение в качестве атомарной операции.
InterlockedExchange16 Задает для 16-разрядной переменной указанное значение в качестве атомарной операции.
InterlockedExchange16Acquire Задает для 16-разрядной переменной указанное значение в качестве атомарной операции. Операция выполняется с помощью семантики упорядочения памяти.
InterlockedExchange16NoFence Задает для 16-разрядной переменной указанное значение в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedExchange64 Задает для 64-разрядной переменной указанное значение в качестве атомарной операции.
InterlockedExchangeAcquire64 Задает для 32-разрядной переменной указанное значение в качестве атомарной операции. Операция выполняется семантикой упорядочения памяти.
InterlockedExchangeNoFence64 Задает для 64-разрядной переменной указанное значение в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedExchangePointer Атомарно обменивается парой значений указателя.
InterlockedExchangePointerAcquire Атомарно обменивается парой значений указателя. Операция выполняется семантикой упорядочения памяти.
InterlockedExchangePointerNoFence Атомарно обменивается парой адресов. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedExchangeSubtract Выполняет атомарное вычитание двух значений.
InterlockedExchangeAdd Выполняет атомарное сложение двух 32-разрядных значений.
InterlockedExchangeAddAcquire Выполняет атомарное сложение двух 32-разрядных значений. Операция выполняется семантикой упорядочения памяти.
InterlockedExchangeAddRelease Выполняет атомарное сложение двух 32-разрядных значений. Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedExchangeAddNoFence Выполняет атомарное сложение двух 32-разрядных значений. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedExchangeAdd64 Выполняет атомарное сложение двух 64-разрядных значений.
InterlockedExchangeAddAcquire64 Выполняет атомарное сложение двух 64-разрядных значений. Операция выполняется семантикой упорядочения памяти.
InterlockedExchangeAddRelease64 Выполняет атомарное сложение двух 64-разрядных значений. Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedExchangeAddNoFence64 Выполняет атомарное сложение двух 64-разрядных значений. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedIncrement Увеличивает (увеличивает на единицу) значение указанной 32-разрядной переменной в качестве атомарной операции.
InterlockedIncrementAcquire Увеличивает (увеличивает на единицу) значение указанной 32-разрядной переменной в качестве атомарной операции. Операция выполняется с помощью семантики упорядочения памяти.
InterlockedIncrementRelease Увеличивает (увеличивает на единицу) значение указанной 32-разрядной переменной в качестве атомарной операции. Операция выполняется с использованием семантики упорядочения памяти выпуска.
InterlockedIncrementNoFence Увеличивает (увеличивает на единицу) значение указанной 32-разрядной переменной в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedIncrement16 Увеличивает (увеличивает на единицу) значение указанной 16-разрядной переменной в качестве атомарной операции.
InterlockedIncrement16Acquire Увеличивает (увеличивает на единицу) значение указанной 16-разрядной переменной в качестве атомарной операции. Операция выполняется с помощью семантики упорядочения памяти.
InterlockedIncrement16Release Увеличивает (увеличивает на единицу) значение указанной 16-разрядной переменной в качестве атомарной операции. Операция выполняется с использованием семантики упорядочения памяти выпуска
InterlockedIncrement16NoFence Увеличивает (увеличивает на единицу) значение указанной 16-разрядной переменной в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedIncrement64 Увеличивает (увеличивает на единицу) значение указанной 64-разрядной переменной в качестве атомарной операции.
InterlockedIncrementAcquire64 Увеличивает (увеличивает на единицу) значение указанной 64-разрядной переменной в качестве атомарной операции. Операция выполняется с помощью семантики упорядочения памяти.
InterlockedIncrementRelease64 Увеличивает (увеличивает на единицу) значение указанной 64-разрядной переменной в качестве атомарной операции. Операция выполняется с использованием семантики упорядочения памяти выпуска.
InterlockedIncrementNoFence64 Увеличивает (увеличивает на единицу) значение указанной 64-разрядной переменной в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти
InterlockedOr Выполняет атомарную операцию ИЛИ с указанными значениями LONG .
InterlockedOrAcquire Выполняет атомарную операцию ИЛИ с указанными значениями LONG . Операция выполняется семантикой упорядочения памяти.
InterlockedOrRelease Выполняет атомарную операцию ИЛИ с указанными значениями LONG . Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedOrNoFence Выполняет атомарную операцию ИЛИ с указанными значениями LONG . Операция выполняется атомарно, но без использования барьеров памяти
InterlockedOr8 Выполняет атомарную операцию ИЛИ с указанными значениями char .
InterlockedOr8Acquire Выполняет атомарную операцию ИЛИ с указанными значениями char . Операция выполняется семантикой упорядочения памяти.
InterlockedOr8Release Выполняет атомарную операцию ИЛИ с указанными значениями char . Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedOr8NoFence Выполняет атомарную операцию ИЛИ с указанными значениями char . Операция выполняется атомарно, но без использования барьеров памяти
InterlockedOr16 Выполняет атомарную операцию ИЛИ с указанными значениями SHORT .
InterlockedOr16Acquire Выполняет атомарную операцию ИЛИ с указанными значениями SHORT . Операция выполняется семантикой упорядочения памяти.
InterlockedOr16Release Выполняет атомарную операцию ИЛИ с указанными значениями SHORT . Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedOr16NoFence Выполняет атомарную операцию ИЛИ с указанными значениями SHORT . Операция выполняется атомарно, но без использования барьеров памяти
InterlockedOr64 Выполняет атомарную операцию ИЛИ с указанными значениями LONGLONG .
InterlockedOr64Acquire Выполняет атомарную операцию ИЛИ с указанными значениями LONGLONG . Операция выполняется семантикой упорядочения памяти.
InterlockedOr64Release Выполняет атомарную операцию ИЛИ с указанными значениями LONGLONG . Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedOr64NoFence Выполняет атомарную операцию ИЛИ с указанными значениями LONGLONG . Операция выполняется атомарно, но без использования барьеров памяти
InterlockedXor Выполняет атомарную операцию XOR с указанными значениями LONG .
InterlockedXorAcquire Выполняет атомарную операцию XOR с указанными значениями LONG . Операция выполняется семантикой упорядочения памяти.
InterlockedXorRelease Выполняет атомарную операцию XOR с указанными значениями LONG . Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedXorNoFence Выполняет атомарную операцию XOR с указанными значениями LONG . Операция выполняется атомарно, но без использования барьеров памяти
InterlockedXor8 Выполняет атомарную операцию XOR с указанными значениями char .
InterlockedXor8Acquire Выполняет атомарную операцию XOR с указанными значениями char . Операция выполняется семантикой упорядочения памяти.
InterlockedXor8Release Выполняет атомарную операцию XOR с указанными значениями char . Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedXor8NoFence Выполняет атомарную операцию XOR с указанными значениями char . Операция выполняется атомарно, но без использования барьеров памяти
InterlockedXor16 Выполняет атомарную операцию XOR с указанными значениями SHORT .
InterlockedXor16Acquire Выполняет атомарную операцию XOR с указанными значениями SHORT . Операция выполняется семантикой упорядочения памяти.
InterlockedXor16Release Выполняет атомарную операцию XOR с указанными значениями SHORT . Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedXor16NoFence Выполняет атомарную операцию XOR с указанными значениями SHORT . Операция выполняется атомарно, но без использования барьеров памяти
InterlockedXor64 Выполняет атомарную операцию XOR с указанными значениями LONGLONG .
InterlockedXor64Acquire Выполняет атомарную операцию XOR с указанными значениями LONGLONG . Операция выполняется семантикой упорядочения памяти.
InterlockedXor64Release Выполняет атомарную операцию XOR с указанными значениями LONGLONG . Операция выполняется семантикой упорядочения памяти выпуска.
InterlockedXor64NoFence Выполняет атомарную операцию XOR с указанными значениями LONGLONG . Операция выполняется атомарно, но без использования барьеров памяти

 

Функции мьютексов

Функция мьютекса Описание
CreateMutex Создает или открывает именованный или неименованный объект мьютекса.
CreateMutexEx Создает или открывает именованный или неименованный объект мьютекса и возвращает дескриптор объекту .
OpenMutex Открывает существующий именованный объект мьютекса.
ReleaseMutex Освобождает владение указанным объектом мьютекса.

 

Функции частного пространства имен

Функция частного пространства имен Описание
AddSIDToBoundaryDescriptor Добавляет новый идентификатор безопасности (SID) в указанный дескриптор границ.
AddIntegrityLabelToBoundaryDescriptor Добавляет новый обязательный идентификатор безопасности (SID) в указанный дескриптор границы.
ClosePrivateNamespace Закрывает открытый дескриптор пространства имен.
CreateBoundaryDescriptor Создает дескриптор границы.
CreatePrivateNamespace Создает частное пространство имен.
DeleteBoundaryDescriptor Удаляет указанный дескриптор границы.
OpenPrivateNamespace Открывает частное пространство имен.

 

Функции семафора

Функция семафора Описание
CreateSemaphore Создает или открывает именованный или неименованный объект семафора.
CreateSemaphoreEx Создает или открывает именованный или неименованный объект семафора и возвращает дескриптор для объекта .
OpenSemaphore Открывает существующий именованный объект семафора.
ReleaseSemaphore Увеличивает количество указанного объекта семафора на указанную величину.

 

Функции списка с единым связыванием

Функция списка с единым связыванием Описание
InitializeSListHead Инициализирует заголовок отдельно связанного списка.
InterlockedFlushsList Очищает весь список элементов в отдельно связанном списке.
InterlockedPopEntrySList Удаляет элемент из передней части списка, связанного по отдельности.
InterlockedPushEntrySList Вставляет элемент в начало единого связанного списка.
InterlockedPushListSList Вставляет одинный связанный список в начало другого списка, связанного по отдельности.
InterlockedPushListsListEx Вставляет одинный связанный список в начало другого списка, связанного по отдельности. Доступ к спискам синхронизируется в многопроцессорной системе. Эта версия метода не использует соглашение о вызовах __fastcall
QueryDepthSList Извлекает количество записей в указанном по отдельности связанном списке.
RtlFirstEntrySList Извлекает первую запись в отдельно связанном списке.
RtlInitializeSListHead Инициализирует заголовок отдельно связанного списка. Вместо этого приложения должны вызывать Метод InitializeSListHead .
RtlInterlockedFlushSList Очищает весь список элементов в отдельно связанном списке. Вместо этого приложения должны вызывать InterlockedFlushSList .
RtlInterlockedPopEntrySList Удаляет элемент из передней части списка, связанного по отдельности. Приложения должны вызывать InterlockedPopEntrySList .
RtlInterlockedPushEntrySList Вставляет элемент в начало единого связанного списка. Вместо этого приложения должны вызывать InterlockedPushEntrySList .
Список RtlQueryDepthSList Извлекает количество записей в указанном по отдельности связанном списке. Вместо этого приложения должны вызывать QueryDepthSList .

 

Функции барьеров синхронизации

Функция барьера синхронизации Описание
DeleteSynchronizationBarrier Удаляет барьер синхронизации.
EnterSynchronizationBarrier Входит в барьер синхронизации и ожидает соответствующего количества потоков для рандеву на барьере.
InitializeSynchronizationBarrier Инициализирует новый барьер синхронизации.

 

Функции таймера очереди таймера

Функция таймера очереди таймера Описание
ChangeTimerQueueTimer Обновления таймер очереди таймера.
CreateTimerQueue Создает очередь для таймеров.
CreateTimerQueueTimer Создает таймер очереди таймера.
DeleteTimerQueue Удаляет очередь таймера.
DeleteTimerQueueEx Удаляет очередь таймера.
DeleteTimerQueueTimer Отменяет таймер очереди таймера.

 

Функции ожидания

Функция Ожидания Описание
MsgWaitForMultipleObjects Ожидает, пока один или все указанные объекты не будут в состоянии сигнала или не истедет интервал времени ожидания. Объекты могут включать объекты входных событий.
MsgWaitForMultipleObjectsEx Ожидает, пока один или все указанные объекты не будут помещены в состояние сигнала, подпрограмма завершения ввода-вывода или асинхронный вызов процедуры (APC) будет помещен в очередь в поток или истекло время ожидания. Массив объектов может включать объекты входных событий.
RegisterWaitForSingleObject Направляет поток ожидания в пуле потоков на ожидание объекта .
SignalObjectAndWait Сигнализирует об одном объекте и ожидает другого объекта в виде одной операции.
Отмена регистрацииWait Отменяет зарегистрированную операцию ожидания.
Отмена регистрацииWaitEx Отменяет зарегистрированную операцию ожидания.
WaitForMultipleObjects Ожидает, пока один или все указанные объекты не будут в состоянии сигнала или не истедет интервал времени ожидания.
WaitForMultipleObjectsEx Ожидает, пока один или все указанные объекты не будут помещены в состояние сигнала, подпрограмма завершения ввода-вывода или асинхронный вызов процедуры (APC) будет помещен в очередь в поток или истекло время ожидания.
WaitForSingleObject Ожидает, пока указанный объект не перейдет в состояние сигнала или не истедет интервал времени ожидания.
WaitForSingleObjectEx Ожидает, пока указанный объект не перейдет в состояние сигнала, подпрограмма завершения ввода-вывода или асинхронный вызов процедуры (APC) будет помещен в очередь в поток или истекает интервал времени ожидания.
WaitOnAddress Ожидает изменения значения по указанному адресу.
WaitOrTimerCallback Определяемая приложением функция, которая служит начальным адресом для обратного вызова таймера или зарегистрированного обратного вызова ожидания.
WakeByAddressAll Выводит из спящего режима все потоки, ожидающие изменения значения адреса.
WakeByAddressSingle Пробуждение потока, ожидающего изменения значения адреса.

 

Функции таймера ожидания

Функция таймера ожидания Описание
CancelWaitableTimer Задает для заданного таймера ожидания неактивное состояние.
CreateWaitableTimer Создает или открывает объект таймера, доступный для ожидания.
CreateWaitableTimerEx Создает или открывает объект таймера ожидания и возвращает дескриптор объекту .
OpenWaitableTimer Открывает существующий именованный объект таймера ожидания.
SetWaitableTimer Активирует указанный таймер ожидания.
SetWaitableTimerEx Активирует указанный таймер ожидания и предоставляет сведения о контексте для таймера. .
TimerAPCProc Определяемая приложением подпрограмма завершения таймера, используемая с функцией SetWaitableTimer .