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