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