C28714

avviso C28714: Eseguire il cast tra tipi integer semanticamente diversi

Questo avviso indica che viene eseguito il cast esplicito di un valore NTSTATUS in un tipo booleano. Questo è probabilmente dare risultati indesiderati. Ad esempio, il valore di esito positivo tipico per NTSTATUS, STATUS_SUCCESS, è false quando viene testato come booleano.

Nella maggior parte dei casi, la macro NT_SUCCESS deve essere usata per testare il valore di un NTSTATUS. Questa macro restituisce true se il valore di stato restituito non è un avviso né un codice di errore. Se una funzione restituisce un valore booleano per indicare il relativo errore/esito positivo, deve restituire in modo esplicito il tipo booleano appropriato anziché dipendere dal cast di NTSTATUS in un tipo booleano.

Inoltre, occasionalmente un programma può tentare di riutilizzare una variabile locale booleana per archiviare i valori NTSTATUS . Questa pratica è spesso soggetta a errori; è molto più sicuro (e probabilmente più efficiente) usare una variabile NTSTATUS separata.