InterlockedExchangePointer 함수(winnt.h)
한 쌍의 주소를 원자성으로 교환합니다.
구문
PVOID InterlockedExchangePointer(
[in, out] PVOID volatile *Target,
[in] PVOID Value
);
매개 변수
[in, out] Target
교환할 주소에 대한 포인터입니다. 함수는 Target 매개 변수(*Target
)가 가리키는 주소를 Value 매개 변수의 값인 주소로 설정하고 Target 매개 변수의 이전 값을 반환합니다.
[in] Value
Target 매개 변수(*Target
)가 가리키는 주소와 교환할 주소입니다.
반환 값
함수는 Target 매개 변수가 가리키는 초기 주소를 반환합니다.
설명
이 함수는 두 번째 매개 변수로 전달된 주소를 첫 번째 매개 변수에 복사하고 첫 번째의 원래 주소를 반환합니다.
64비트 시스템에서 매개 변수는 64비트이며 Target 매개 변수는 64비트 경계에 맞춰야 합니다. 그렇지 않으면 함수가 예측할 수 없을 정도로 동작합니다. 32비트 시스템에서 매개 변수는 32비트이며 Target 매개 변수는 32비트 경계에 맞춰야 합니다.
상호 잠긴 함수는 여러 스레드에서 공유하는 변수에 대한 액세스를 동기화하기 위한 간단한 메커니즘을 제공합니다. 이 함수는 다른 상호 잠긴 함수에 대한 호출과 관련하여 원자성입니다.
이 함수는 가능한 경우 컴파일러 내장 함수를 사용하여 구현됩니다. 자세한 내용은 WinBase.h 헤더 파일 및 _InterlockedExchangePointer 참조하세요.
이 함수는 메모리 작업이 순서대로 완료되도록 전체 메모리 장벽(또는 펜스)을 생성합니다.
Itanium 기반 시스템: 성능에 중요한 애플리케이션의 경우 InterlockedExchangePointerAcquire 를 대신 사용합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | winnt.h(Windows.h 포함) |
추가 정보
InterlockedExchangePointerAcquire
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기