C28714
avertissement C28714 : Cast entre des types entiers sémantiquement différents
Cet avertissement indique qu’une valeur NTSTATUS est explicitement convertie en type booléen. Cela est susceptible de donner des résultats indésirables. Par exemple, la valeur de réussite classique pour NTSTATUS, STATUS_SUCCESS, est false lorsqu’elle est testée en tant que booléen.
Dans la plupart des cas, la macro NT_SUCCESS doit être utilisée pour tester la valeur d’un NTSTATUS. Cette macro retourne true si la valeur status retournée n’est ni un avertissement ni un code d’erreur. Si une fonction retourne une valeur booléenne pour indiquer son échec/réussite, elle doit retourner explicitement le type booléen approprié au lieu de dépendre de la conversion de NTSTATUS en type booléen.
En outre, un programme peut parfois tenter de réutiliser une variable locale booléenne pour stocker des valeurs NTSTATUS . Cette pratique est souvent source d’erreurs ; il est beaucoup plus sûr (et probablement plus efficace) d’utiliser une variable NTSTATUS distincte.