Export (0) Print
Expand All
Expand Minimize
1 out of 1 rated this helpful - Rate this topic

InterlockedExchange routine

The InterlockedExchange routine sets an integer variable to a given value as an atomic operation.

Syntax


LONG InterlockedExchange(
  _Inout_  LONG volatile *Target,
  _In_     LONG Value
);

Parameters

Target [in, out]

A pointer to a variable to be set to the supplied Value as an atomic operation.

Value [in]

Specifies the value to which the variable will be set.

Return value

InterlockedExchange returns the value of the variable at Target when the call occurred.

Remarks

InterlockedExchange should be used instead of ExInterlockedExchangeUlong, because it is both faster and more efficient.

InterlockedExchange is implemented inline by the compiler when appropriate and possible. It does not require a spin lock and can therefore be safely used on pageable data.

A call to InterlockedExchange routine is atomic only with respect to other InterlockedXxx calls.

Interlocked operations cannot be used on non-cached memory.

Requirements

Version

Available starting with Windows 2000.

Header

Wdm.h (include Wdm.h, Ntddk.h, or Ntifs.h)

IRQL

Any level

See also

InterlockedDecrement
InterlockedIncrement
ExInterlockedAddLargeInteger
ExInterlockedAddUlong

 

 

Send comments about this topic to Microsoft

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.