Функции синхронизации
В синхронизации используются следующие функции.
- Асинхронные функции
- Функции блокировки переменной условия и SRW
- Функции критических разделов
- Функции событий
- Функции одноразовой инициализации
- Взаимосвязанные функции
- Функции мьютексов
- Функции частного пространства имен
- Функции семафора
- Функции списков с единым связыванием
- Функции барьеров синхронизации
- Функции таймера очереди таймера
- Функции ожидания
- Функции таймера ожидания
Асинхронные функции
Асинхронная функция | Описание |
---|---|
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 . |