NdisInterlockedAddUlong マクロ (ndis.h)

NdisInterlockedAddUlong 関数は、呼び出し元が指定したスピン ロックを使用して整数変数へのアクセスを同期することで、指定された符号なし整数に符号なし long 値をアトミック操作として追加します。

構文

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

パラメーター

[in] _Addend

指定した Increment によって値を調整する変数へのポインター。

[in] _Increment

Addend で追加する値。

[in] _SpinLock

呼び出し元によって初期化されたスピン ロックへのポインター。

戻り値

なし

解説

NdisInterlockedAddUlong の呼び出し元は、スピン ロックの常駐ストレージを提供する必要があります。これは、NdisInterlockedAddUlong の最初の呼び出しの前に NdisAllocateSpinLock 関数で初期化する必要があります。

NdisInterlockedAddUlong 関数に渡される SpinLock 値は、Addend パラメーターの変数への追加が、同じスピン ロックと同期する同じ変数に対する他の操作に対してアトミックであることを保証するために使用されます。

NdisInterlockedAddUlong は、指定されたスピン ロックを取得し、コントロールを返す前に元の IRQL を復元するときに、IRQL をDISPATCH_LEVELに発生させます。 そのため、 NdisInterlockedAddUlong を呼び出すドライバー関数をページング可能なコードにすることはできません。

要件

要件
サポートされている最小のクライアント Windows Vista の NDIS 6.0 および NDIS 5.1 ドライバー (NdisInterlockedAddUlong (NDIS 5.1) を参照) でサポートされています。 Windows XP の NDIS 5.1 ドライバー (NdisInterlockedAddUlong (NDIS 5.1) を参照) でサポートされています。
対象プラットフォーム ユニバーサル
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL 任意のレベル

こちらもご覧ください

NdisAcquireSpinLock

NdisAllocateSpinLock

NdisReleaseSpinLock

NdisRetrieveUlong

NdisStoreUlong