C28716
avviso C28716: cast inserito dal compilatore tra tipi integrali diversi semanticamente
Questo avviso indica che un valore Boolean viene usato come NTSTATUS senza essere sottoposto a cast esplicito. È probabile che ciò restituisca risultati indesiderati. Ad esempio, il valore di errore tipico per le funzioni che restituiscono un valore booleano (false) indica uno stato di esito positivo quando viene testato come NTSTATUS.
Esempio
PREfast segnala l'avviso per l'esempio seguente.
extern bool SomeMemAllocFunction(void **);
return SomeMemAllocFunction(&MyPtr);
Nell'esempio seguente viene evitato l'errore .
extern bool SomeMemAllocFunction(void **);
if (SomeMemAllocFunction(&MyPtr) == true) {
return STATUS_SUCCESS;
} else {
return STATUS_NO_MEMORY;
}