C28715
경고 C28715: 의미상 다른 정수 형식 간에 캐스팅
이 경고는 부울이 NTSTATUS로 캐스팅되고 있음을 나타냅니다. 이는 바람직하지 않은 결과를 제공할 가능성이 높습니다. 예를 들어 부울(FALSE)을 반환하는 함수의 일반적인 실패 값은 NTSTATUS로 테스트할 때 성공 상태.
일반적으로 부울을 반환하는 함수는 1( TRUE의 경우) 또는 0( FALSE의 경우)을 반환합니다. 이러한 값은 모두 NT_SUCCESS 매크로에서 성공 코드로 처리됩니다. 따라서 실패 사례는 검색되지 않습니다.
예제
PREfast는 다음 예제에 대한 경고를 보고합니다.
extern BOOL SomeFunction(void);
if (NT_SUCCESS(SomeFunction())) {
return 0;
} else {
return -1;
}
다음 예제에서는 오류를 방지합니다.
extern BOOL SomeFunction(void);
if (SomeFunction() == TRUE) {
return 0;
} else {
return -1;
}