C28650

警告 C28650: !0 が使用されている型は、エラー ケースとして扱われません。

!TRUE などの状態値を返すことは、エラーを示す状態値を返すことと同じではありません。

NTSTATUSHRESULT など特定のデータ型には、これらの型の値を SUCCESS または FAILURE に分類するマクロが関連付けられています。 これらのマクロは、返された値の最上位ビットをチェックして、これを判断します。 このため、0 と 1 はどちらも SUCCESS 値として分類されます。

この警告を修正する適切な方法は、-1 などのジェネリック値ではなく、適切なエラー コードを返すことです。