Partilhar via


C28716

aviso C28716: Conversão inserida pelo compilador entre tipos integrais semanticamente diferentes

Esse aviso indica que um booleano está sendo usado como um NTSTATUS sem ser explicitamente lançado. É 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) indica um status de sucesso quando testado como um NTSTATUS.

Exemplo

O PREfast relata o aviso para o exemplo a seguir.

extern bool SomeMemAllocFunction(void **);

return SomeMemAllocFunction(&MyPtr);

O exemplo a seguir evita o erro.

extern bool SomeMemAllocFunction(void **);

if (SomeMemAllocFunction(&MyPtr) == true) {
 return STATUS_SUCCESS;
} else {
 return STATUS_NO_MEMORY;
}