C28139

警告 C28139:参数应与类型完全匹配

其他信息

某些函数允许对参数类型进行有限的算术,而其他函数则不允许。 这通常表示未向枚举成员传递枚举形式,但也可用于其他类型的枚举。

函数调用中的枚举值与函数声明中为参数指定的类型不匹配。 当参数编码错误、缺失或无序时,可能会发生此错误。 由于 C 允许可互换使用枚举值,并且允许与整数常量互换使用,因此在不识别错误的情况下将错误的枚举值传递给函数并不罕见。

如果代码分析工具报告此错误,请参阅 WDK 中函数的文档。 某些函数编码为仅允许枚举值。 其他运算符允许 ?: 运算符在该类型的值之间进行选择,或允许对枚举类型的成员进行算术,例如当位标志编码为枚举值时。 在少数情况下,枚举值和常量可以组合在一起。

示例

下面的代码示例引发此警告。

....KeWaitForSingleObject(&MyMutex, UserRequest, UserRequest, false, NULL);

下面的代码示例避免了此警告。

....KeWaitForSingleObject(&MyMutex, UserRequest, UserMode, false, NULL);