Skip to content

Latest commit

 

History

History
140 lines (82 loc) · 4.42 KB

nf-winnt-interlockeddecrement.md

File metadata and controls

140 lines (82 loc) · 4.42 KB
UID title description helpviewer_keywords old-location tech.root ms.assetid ms.date ms.keywords req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames req.redist ms.custom f1_keywords dev_langs topic_type api_type api_location api_name
NF:winnt.InterlockedDecrement
InterlockedDecrement function (winnt.h)
Decrements (decreases by one) the value of the specified 32-bit variable as an atomic operation.
InterlockedDecrement
InterlockedDecrement function
_win32_interlockeddecrement
base.interlockeddecrement
winnt/InterlockedDecrement
base\interlockeddecrement.htm
backup
d6ed6cb1-aa10-48f4-9b62-73708ff4d1e3
12/05/2018
InterlockedDecrement, InterlockedDecrement function, _win32_interlockeddecrement, base.interlockeddecrement, winnt/InterlockedDecrement
winnt.h
Windows.h
Windows
Windows XP [desktop apps \| UWP apps]
Windows Server 2003 [desktop apps \| UWP apps]
Kernel32.lib
Kernel32.dll
Windows
19H1
InterlockedDecrement
winnt/InterlockedDecrement
c++
APIRef
kbSyntax
DllExport
Kernel32.dll
API-MS-Win-Core-Interlocked-l1-1-0.dll
API-MS-Win-Core-Interlocked-l1-2-0.dll
KernelBase.dll
MinKernelBase.dll
InterlockedDecrement

InterlockedDecrement function

-description

Decrements (decreases by one) the value of the specified 32-bit variable as an atomic operation.

To operate on 64-bit values, use the InterlockedDecrement64 function.

-parameters

-param Addend [in, out]

A pointer to the variable to be decremented.

-returns

The function returns the resulting decremented value.

-remarks

The variable pointed to by the Addend parameter must be aligned on a 32-bit boundary; otherwise, this function will behave unpredictably on multiprocessor x86 systems and any non-x86 systems. See _aligned_malloc.

The interlocked functions provide a simple mechanism for synchronizing access to a variable that is shared by multiple threads. This function is atomic with respect to calls to other interlocked functions.

This function is implemented using a compiler intrinsic where possible. For more information, see the WinBase.h header file and _InterlockedDecrement.

This function generates a full memory barrier (or fence) to ensure that memory operations are completed in order.

Itanium-based systems:  For performance-critical applications, use InterlockedDecrementAcquire or InterlockedDecrementRelease instead.

Note  This function is supported on Windows RT-based systems.
 

-see-also

Interlocked Variable Access

InterlockedDecrement16

InterlockedDecrement16Acquire

InterlockedDecrement16NoFence

InterlockedDecrement16Release

InterlockedDecrement64

InterlockedDecrementAcquire

InterlockedDecrementAcquire64

InterlockedDecrementNoFence

InterlockedDecrementNoFence64

InterlockedDecrementRelease

InterlockedDecrementRelease64

InterlockedIncrement

Synchronization Functions