次の方法で共有


ExInterlockedCompareExchange64 マクロ (wdm.h)

ExInterlockedCompareExchange64 ルーチンは、ある整数変数を別の整数変数と比較し、等しい場合は、最初の変数を呼び出し元が指定した値に設定します。

構文

void ExInterlockedCompareExchange64(
  [in, out]  Destination,
  [in]       Exchange,
             Comperand,
  [in]       Lock
);

パラメーター

[in, out] Destination

比較され、置き換えられる可能性がある整数へのポインター。

[in] Exchange

比較の結果が等しい場合に 変換先にある整数を置き換える整数へのポインター。

Comperand

Destination の値 比較する整数へのポインター。

[in] Lock

ホスト システムが 8 バイトのアトミック比較および交換操作をサポートしていない場合に使用される呼び出し元によって割り当てられたスピン ロックへのポインター。

戻り値

何一つ

備考

このマクロは、InterlockedCompareExchange64 ラップするか、ExfInterlockedCompareExchange64 し、LONGLONG 型の戻り値を想定します。

ExInterlockedCompareExchange64 テストを し、場合によっては、特定の変数の値を置き換えます。 基になるほとんどのマイクロプロセッサでは、このルーチンはコンパイラによってインラインで実装され、アトミック操作として実行されます。 スピン ロックを使用する場合、このルーチンは非ページ パラメーターでのみ安全に使用できます。

DestinationComparand が等しくない場合、ExInterlockedCompareExchange64 は単に Destination の値返します。

ExInterlockedCompareExchange64 は、他の (例) InterlockedXxx 呼び出しに関してのみアトミックです。

ExInterlockedCompareExchange64 の呼び出し元は、任意の IRQL で実行できます。 Destination、Comparand、および Exchange パラメーターのストレージとリスト エントリは、すべての IRQL に常駐している必要があります。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任意のレベル (「解説」セクションを参照)

関連項目

InterlockedCompareExchange

InterlockedExchange

InterlockedExchangeAdd