Edit

Share via


AddULongRaw function (wdm.h)

AddULongRaw performs a raw addition operation on a volatile ULONG value without atomic guarantees.

Syntax

ULONG AddULongRaw(
  ULONG volatile *Destination,
  ULONG          Value
);

Parameters

Destination

[in, out] A pointer to the volatile ULONG variable to modify. This parameter serves as both the source and destination for the addition operation.

Value

[in] The ULONG value to add to the destination.

Return value

Returns the new ULONG value after the addition operation.

Remarks

The AddULongRaw function performs a non-atomic read-add-write operation on unsigned long values. This function internally casts the ULONG pointers to LONG pointers and calls AddRaw, then casts the result back to ULONG.

This function is not atomic and should not be used in multithreaded scenarios where multiple threads might access the same memory ___location. The operation consists of separate read and write operations that can be interrupted.

Requirements

Requirement Value
Header wdm.h
IRQL Any level

See also

AddRaw

AddULong64Raw

AddRaw64