Share via


NdisInterlockedAddUlong 매크로(ndis.h)

NdisInterlockedAddUlong 함수는 호출자가 제공한 스핀 잠금을 사용하여 정수 변수에 대한 액세스를 동기화하여 지정된 부호 없는 정수에 부호 없는 긴 값을 원자성 작업으로 추가합니다.

구문

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

매개 변수

[in] _Addend

지정된 증분 에서 값을 조정할 변수에 대한 포인터입니다.

[in] _Increment

추가에서 추가할 값입니다.

[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) 참조)에 대해 지원됩니다.
대상 플랫폼 유니버설
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL 모든 수준

추가 정보

NdisAcquireSpinLock

NdisAllocateSpinLock

NdisReleaseSpinLock

NdisRetrieveUlong

NdisStoreUlong