Compartilhar via


C28716

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

Esse aviso indica que um booliano está sendo usado como um NTSTATUS sem ser explicitamente convertido. Isso provavelmente fornecerá resultados indesejáveis. Por exemplo, o valor de falha típico para funções que retornam um booliano (falso) indica um êxito status quando testado como um NTSTATUS.

Exemplo

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;
}