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