C28714

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

此警告指示 NTSTATUS 值被显式强制转换为布尔类型。 这可能导致不良结果。 例如,NTSTATUSSTATUS_SUCCESS)的典型成功值在测试为布尔值时 false

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

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