Функция InterlockedExchange (wdm.h)

Подпрограмма InterlockedExchange задает для целочисленной переменной заданное значение как атомарную операцию.

Синтаксис

LONG InterlockedExchange(
  [in, out] LONG volatile *Target,
  [in]      LONG          Value
);

Параметры

[in, out] Target

Указатель на переменную, устанавливаемую на предоставленное значение в качестве атомарной операции.

[in] Value

Задает значение, для которого будет задана переменная.

Возвращаемое значение

InterlockedExchange возвращает значение переменной target при вызове.

Комментарии

Вместо ExInterlockedExchangeUlong следует использовать InterlockedExchange, так как он работает быстрее и эффективнее.

InterlockedExchange реализуется встроенным компилятором по мере необходимости и возможности. Он не требует блокировки спина и поэтому может безопасно использоваться для страничных данных.

Вызов подпрограммы InterlockedExchange является атомарным только по отношению к другим вызовам InterlockedXxx .

Операции с блокировкой нельзя использовать в некэшированной памяти.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h, Miniport.h)
Библиотека OneCoreUAP.lib в Windows 10
IRQL Любой уровень

См. также раздел

ExInterlockedAddLargeInteger

ExInterlockedAddUlong

InterlockedDecrement

InterlockedIncrement