Поделиться через


Функция 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 Любой уровень

См. также

ExInterlockedAddLargeInteger

ExInterlockedAddUlong

InterlockedDecrement

InterlockedIncrement