다음을 통해 공유


경고 C28113

Interlocked 함수를 통해 지역 변수에 액세스합니다.

드라이버는 InterlockedDecrement와 같은 Interlocked 임원 지원 루틴을 사용하여 지역 변수에 액세스합니다.

드라이버는 지역 변수의 주소를 다른 함수에 전달한 다음, 연동 함수를 사용하여 해당 변수에서 작동할 수 있지만 스택이 예기치 않게 디스크로 교환되지 않으며 변수가 사용할 수 있는 모든 스레드에서 올바른 수명 시간을 갖는지 확인하는 것이 중요합니다.

예시

일반적으로 Interlocked executive 지원 루틴의 반환 값은 입력 인수 대신 이후 계산에 사용됩니다. 또한 Interlocked 루틴은 첫 번째(가장 왼쪽) 인수만 보호합니다. 다음과 같은 방법으로 Interlocked 루틴을 사용하면 전역 값이 보호되지 않으며 용도가 없는 경우가 많습니다.

InterlockedExchange(&local, global)

다음 양식은 데이터에 대해 동일한 효과를 갖고 있으며, 전역 변수에 안전하게 액세스합니다.

local = InterllockedExchange(&global, global)