Функция InterlockedExchangeAdd (wdm.h)
Подпрограмма InterlockedExchangeAdd добавляет значение в заданное целое число в виде атомарной операции и возвращает исходное значение заданного целого числа.
Синтаксис
LONG InterlockedExchangeAdd(
[in, out] LONG volatile *Addend,
[in] LONG Value
);
Параметры
[in, out] Addend
Указатель на целочисленную переменную.
[in] Value
Указывает значение, добавляемое в addend.
Возвращаемое значение
InterlockedExchangeAdd возвращает исходное значение переменной Addend при вызове.
Комментарии
Вместо ExInterlockedAdd следует использовать InterlockedExchangeAdd, так как он работает быстрее и эффективнее.
InterlockedExchangeAdd реализуется компилятором в соответствии с возможностью и возможностью. Он не требует блокировки спина и поэтому может безопасно использоваться для страничных данных.
InterlockedExchangeAdd является атомарным только по отношению к другим вызовам InterlockedXxx .
Операции с блокировкой нельзя использовать в некэшированной памяти.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 2000. |
Целевая платформа | Универсальное |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |
Библиотека | OneCoreUAP.lib в Windows 10 |
IRQL | Любой уровень |