Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
aviso C28715: Conversão entre tipos inteiros semanticamente diferentes
Esse aviso indica que um booleano está sendo convertido para NTSTATUS. É provável que esta situação dê resultados indesejáveis. Por exemplo, o valor de falha típico para funções que retornam um Boolean (FALSE) é um status de sucesso quando testado como um NTSTATUS.
Normalmente, uma função que retorna Boolean retorna 1 (para TRUE) ou 0 (para FALSE). Ambos os valores são tratados como códigos de sucesso pela macro NT_SUCCESS. Assim, o caso de falha nunca será detetado.
exemplos
O PREfast relata o aviso para o exemplo a seguir.
extern BOOL SomeFunction(void);
if (NT_SUCCESS(SomeFunction())) {
return 0;
} else {
return -1;
}
O exemplo a seguir evita o erro.
extern BOOL SomeFunction(void);
if (SomeFunction() == TRUE) {
return 0;
} else {
return -1;
}