This function adds an unsigned long value to a given unsigned integer as an atomic operation, using a caller-supplied spin lock to synchronize access to the integer variable.

VOID NdisInterlockedAddUlong(
  PULONG Addend,
  ULONG Increment,


  • Addend
    [in] Points to the variable for which the value is to be adjusted by the given Increment.
  • Increment
    [in] Specifies the value to be added to that at Addend.
  • SpinLock
    [in] Points to a caller-initialized spin lock.

Return Values



The caller must provide resident storage for the spin lock, which must be initialized with NdisAllocateSpinLock before the initial call to NdisInterlockedAddUlong.

The SpinLock passed to NdisInterlockedAddUlong is used to assure that the addition to the variable at Addend is atomic with respect to any other operations on the same variable that synchronize with the same spin lock.


OS Versions: Windows CE .NET 4.0 and later.
Header: Ndis.h.

See Also

NdisAcquireSpinLock | NdisAllocateSpinLock | NdisReleaseSpinLock

 Last updated on Tuesday, May 18, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.