C28135

警告 C28135:如果 KeWaitForSingleObject 的第一个参数是局部变量,则 Mode 参数必须为 KernelMode

驱动程序正在用户模式下等待。 因此,可以在等待期间交换内核堆栈。 如果驱动程序尝试在堆栈上传递参数,可能会导致系统崩溃。

示例

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

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

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

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