C28135

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

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

示例

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

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

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

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