C28716
Warnung C28716: Vom Compiler eingefügte Umwandlung zwischen semantisch unterschiedlichen integralen Typen
Diese Warnung gibt an, dass ein boolescher Wert als NTSTATUS verwendet wird, ohne explizit umgewandelt zu werden. Dies wird wahrscheinlich zu unerwünschten Ergebnissen führen. Für instance gibt der typische Fehlerwert für Funktionen, die einen booleschen Wert (false) zurückgeben, eine erfolgreiche status an, wenn sie als NTSTATUS getestet wird.
Beispiel
PREfast meldet die Warnung für das folgende Beispiel.
extern bool SomeMemAllocFunction(void **);
return SomeMemAllocFunction(&MyPtr);
Im folgenden Beispiel wird der Fehler vermieden.
extern bool SomeMemAllocFunction(void **);
if (SomeMemAllocFunction(&MyPtr) == true) {
return STATUS_SUCCESS;
} else {
return STATUS_NO_MEMORY;
}