# HLE Acquire _InterlockedExchangeAdd Functions

Performs an atomic addition of two values and attempts to begin a HLE transaction if supported by the executing platform. This intrinsic function applies to C/C++ applications for Windows only.

## Syntax

long _InterlockedExchangeAdd_HLEAcquire(long volatile *Addend, long Value);

__int64 _InterlockedExchangeAdd64_HLEAcquire(__int64 volatile *Addend, __int64 Value);

## Parameters

`Addend [in, out]` | pointer to the addend which will be replaced with the result of the addition
`Value [in]` | value to be added to the value referenced by the `Addend`parameter

## Description

Performs an atomic addition of two values, and also attempts to begin a HLE transaction if the executing platform supports it.

## Returns

The function returns the initial value referenced by the `Addend` parameter.

Parent topic: Intrinsics for Hardware Lock Elision Operations