ExInterlockedCompareExchange64 マクロ (wdm.h)
ExInterlockedCompareExchange64 ルーチンは、ある整数変数を別の整数変数と比較し、等しい場合は、最初の変数を呼び出し元から指定された値に設定します。
構文
void ExInterlockedCompareExchange64(
[in, out] Destination,
[in] Exchange,
Comperand,
[in] Lock
);
パラメーター
[in, out] Destination
比較され、置き換えられる可能性がある整数へのポインター。
[in] Exchange
比較の結果が等しい場合に Destination の値を置き換える整数へのポインター。
Comperand
Destination の値が比較される整数へのポインター。
[in] Lock
ホスト システムが 8 バイトのアトミック比較および交換操作をサポートしていない場合に使用される、呼び出し元によって割り当てられたスピン ロックへのポインター。
戻り値
なし
解説
このマクロは InterlockedCompareExchange64 または ExfInterlockedCompareExchange64 をラップし、LONGLONG 型の戻り値を前提としています。
ExInterlockedCompareExchange64 は、特定の変数の値をテストし、場合によっては置き換えます。 基になるほとんどのマイクロプロセッサでは、このルーチンはコンパイラによってインラインで実装され、アトミック操作として実行されます。 スピン ロックを使用する場合、このルーチンは非ページ パラメーターでのみ安全に使用できます。
Destination と Comparand が等しくない場合、ExInterlockedCompareExchange64 は単に Destination の値を返します。
ExInterlockedCompareExchange64 は、他 の (Ex)InterlockedXxx 呼び出しに関してのみアトミックです。
ExInterlockedCompareExchange64 の呼び出し元は、任意の IRQL で実行できます。 Destination、Comparand、および Exchange パラメーターのストレージとリスト エントリは、すべての IRQL に常駐している必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | 任意のレベル (「解説」セクションを参照) |