C28714

警告 C28714:在语义上不同的整数类型之间强制转换

此警告指示 NTSTATUS 值正在显式转换为布尔类型。 这可能会产生不良结果。 例如, NTSTATUS 的典型成功值 (STATUS_SUCCESS)在测试为布尔值时为 false

在大多数情况下,应使用 NT_SUCCESS 宏来测试 NTSTATUS 的值。 如果返回的状态值既不是警告也不是错误代码,则此宏返回 true 。 如果函数返回布尔值以指示其失败/成功,则应显式返回相应的布尔类型,而不是依赖于 NTSTATUS 转换为布尔类型。

此外,有时程序可能会尝试重用布尔局部变量来存储 NTSTATUS 值。 这种做法通常容易出错;使用单独的 NTSTATUS 变量) , (更安全,而且效率可能更高。