C28716

警告 C28716: 意味的に異なる整数型間のコンパイラ挿入キャスト

この警告は、明示的にキャストされずにブール値が NTSTATUS として使用されていることを示します。 これは望ましくない結果を与える可能性があります。 たとえば、ブール値 (FALSE) を返す関数の一般的なエラー値は、NTSTATUS としてテストされた場合の成功状態です。

PREfast は、次の例の警告を報告します。

extern bool SomeMemAllocFunction(void **);

return SomeMemAllocFunction(&MyPtr);

次の例では、エラーが回避されます。

extern bool SomeMemAllocFunction(void **);

if (SomeMemAllocFunction(&MyPtr) == true) {
 return STATUS_SUCCESS;
} else {
 return STATUS_NO_MEMORY;
}