다음을 통해 공유


ExInterlockedAddLargeInteger 함수(wdm.h)

ExInterlockedAddLargeInteger 루틴은 지정된 변수에 큰 정수 값을 원자성 연산으로 추가합니다.

통사론

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

매개 변수

[in, out] Addend

증분 값으로 조정할 변수에 대한 포인터입니다.

[in] Increment

추가추가할 값을 지정합니다.

[in, out] Lock

추가대한 액세스를 동기화하는 데 사용할 스핀 잠금에 대한 포인터입니다.

반환 값

ExInterlockedAddLargeIntegerAddend 매개 변수의 초기 값을 반환합니다.

발언

연동 작업을 수행하는 지원 루틴은 페이지 오류를 일으킬 수 없는 것으로 간주됩니다. 즉, 코드나 터치하는 데이터 중 어느 것도 시스템을 중단하지 않고 페이지 오류를 일으킬 수 없습니다. 스핀 잠금을 사용하여 대칭 다중 프로세서 머신에서 원자성을 달성합니다. 호출자는 ExInterlockedXxx처음 호출하기 전에 KeInitializeSpinLock 사용하여 초기화해야 하는 Lock대한 상주 스토리지를 제공해야 합니다.

ExInterlockedAddLargeInteger 전달된 Lock 사용하여 추가 대한 추가 작업이 동일한 스핀 잠금과 동기화되는 동일한 값의 다른 작업과 관련하여 원자성이 있는지 확인합니다.

ExInterlockedAddLargeInteger 마스크 인터럽트입니다. 따라서 동일한 Lock IRQL = DISPATCH_LEVEL 실행되는 루틴에 대한 호출에서 다시 사용되지 않는 경우 ISR과 다른 디바이스 드라이버 코드 간의 동기화에 사용할 수 있습니다.

InterlockedXxx 호출은 호출자가 제공한 스핀 잠금 없이 다른 인터록된Xxx 호출과 관련하여 원자성으로 보장됩니다.

ExInterlockedAddLargeInteger 호출자는 모든 IRQL에서 실행할 있습니다. 추가 매개 변수에 대한 스토리지는 모든 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