경고 C28113
Interlocked 함수를 통해 지역 변수에 액세스합니다.
드라이버는 InterlockedDecrement와 같은 Interlocked 임원 지원 루틴을 사용하여 지역 변수에 액세스합니다.
드라이버는 지역 변수의 주소를 다른 함수에 전달한 다음, 연동 함수를 사용하여 해당 변수에서 작동할 수 있지만 스택이 예기치 않게 디스크로 교환되지 않으며 변수가 사용할 수 있는 모든 스레드에서 올바른 수명 시간을 갖는지 확인하는 것이 중요합니다.
예시
일반적으로 Interlocked executive 지원 루틴의 반환 값은 입력 인수 대신 이후 계산에 사용됩니다. 또한 Interlocked 루틴은 첫 번째(가장 왼쪽) 인수만 보호합니다. 다음과 같은 방법으로 Interlocked 루틴을 사용하면 전역 값이 보호되지 않으며 용도가 없는 경우가 많습니다.
InterlockedExchange(&local, global)
다음 양식은 데이터에 대해 동일한 효과를 갖고 있으며, 전역 변수에 안전하게 액세스합니다.
local = InterllockedExchange(&global, global)
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기