NdisInterlockedAddUlong 宏 (ndis.h)

NdisInterlockedAddUlong 函数将无符号长值作为原子操作添加到给定的无符号整数,并使用调用方提供的旋转锁来同步对整数变量的访问。

语法

void NdisInterlockedAddUlong(
  [in]  _Addend,
  [in]  _Increment,
  [in]  _SpinLock
);

参数

[in] _Addend

指向变量的指针,该值将由给定 的 Increment 调整。

[in] _Increment

要在 Addend 中添加的值。

[in] _SpinLock

指向调用方初始化的旋转锁的指针。

返回值

备注

NdisInterlockedAddUlong 的调用方必须为旋转锁提供驻留存储,在初始调用 NdisInterlockedAddUlong 之前,必须使用 NdisAllocateSpinLock 函数初始化该存储。

传递给 NdisInterlockedAddUlong 函数的 SpinLock 值用于确保 Addend 参数中变量的添加相对于与同一个旋转锁同步的同一变量上的任何其他操作而言是原子的。

NdisInterlockedAddUlong 在获取给定的旋转锁时将 IRQL 提升为DISPATCH_LEVEL,并在返回控件之前还原原始 IRQL。 因此,任何调用 NdisInterlockedAddUlong 的驱动程序函数都不能是可分页代码。

要求

要求
最低受支持的客户端 NDIS 6.0 和 NDIS 5.1 驱动程序支持 (请参阅 Windows Vista 中的 NdisInterlockedAddUlong (NDIS 5.1) ) 。 NDIS 5.1 驱动程序支持 (请参阅 Windows XP 中的 NdisInterlockedAddUlong (NDIS 5.1) ) 。
目标平台 通用
标头 ndis.h (包括 Ndis.h)
Library Ndis.lib
IRQL 任何级别

另请参阅

NdisAcquireSpinLock

NdisAllocateSpinLock

NdisReleaseSpinLock

NdisRetrieveUlong

NdisStoreUlong