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는 다른(예: 인터록된Xxx 호출)에 대해서만 원자성입니다.

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