Функция InterlockedExchange (miniport.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. |
Целевая платформа | Универсальное |
Верхняя часть | miniport.h (включая Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |
Библиотека | OneCoreUAP.lib в Windows 10 |
IRQL | Любой уровень |