共用方式為


ExInterlockedAddLargeInteger 函式 (wdm.h)

ExInterlockedAddLargeInteger 例程會將大型整數值新增至指定的變數作為不可部分完成的作業。

語法

LARGE_INTEGER ExInterlockedAddLargeInteger(
  [in, out] PLARGE_INTEGER Addend,
  [in]      LARGE_INTEGER  Increment,
  [in, out] PKSPIN_LOCK    Lock
);

參數

[in, out] Addend

要由 Increment 值調整之變數的指標。

[in] Increment

指定要加入至 Addend的值。

[in, out] Lock

微調鎖定的指標,用來同步存取 Addend

傳回值

ExInterlockedAddLargeInteger 會傳回 Addend 參數的初始值。

言論

支援執行連鎖作業的例程會假設無法造成頁面錯誤。 也就是說,其程式代碼和他們接觸的任何數據都不會造成頁面錯誤,而不會使系統關閉。 他們會使用微調鎖定在對稱多處理器計算機上實現不可部分完成性。 呼叫端必須提供 Lock的常駐記憶體,此記憶體必須在初始 呼叫 exInterlockedXxx之前,先使用 KeInitializeSpinLock 初始化。

傳遞至 exInterlockedAddLargeInteger Lock,可確保與這個相同微調鎖定同步處理之相同值上的任何其他作業,Addend 上的新增作業都是不可部分完成的。

ExInterlockedAddLargeInteger 遮罩中斷。 因此,它可以用於ISR與其他裝置驅動程式程式代碼之間的同步處理,前提是在IRQL = DISPATCH_LEVEL 執行例程的呼叫中,永遠不會重複使用相同的 鎖定

請注意,InterlockedXxx 的呼叫,保證對其他 Interlocked Xxx 呼叫不可部分完成,而不需呼叫端提供的微調鎖定。

ExInterlockedAddLargeInteger 的呼叫者 在任何 IRQL 上執行。 Addend 參數的記憶體必須位於所有 IRQL。

要求

要求 價值
最低支援的用戶端 適用於 Windows 2000 和更新版本的 Windows。 無法在 Windows 98 或 Windows Me 中使用。
目標平臺 普遍
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何層級 (請參閱一節)

另請參閱

ExInterlockedAddUlong

InterlockedDecrement

InterlockedIncrement

KeInitializeSpinLock