【问题标题】:PAGE_FAULT_IN_NONPAGED_AREA error at KeWaitForSingleObject functionKeWaitForSingleObject 函数出现 PAGE_FAULT_IN_NONPAGED_AREA 错误
【发布时间】:2010-02-23 08:40:41
【问题描述】:

此代码会导致问题吗?(PAGE_FAULT_IN_NONPAGED_AREA)

KEVENT waitEvent; //allocate on stack
LARGE_INTEGER timeout;

KeInitializeEvent(&waitEvent, NotificationEvent, FALSE);
KeResetEvent(&waitEvent);
timeout.QuadPart = -(100 * 10000); // 100 ms

while(pDataChannel->useCount)
{
    KeWaitForSingleObject(&waitEvent, Executive, KernelMode, FALSE, &timeout);
}

waitEvent 变量能否被调出? 变量是否必须分配在非分页池上?

【问题讨论】:

    标签: windows device-driver


    【解决方案1】:

    pDataChannel 有效吗?还是您在DISPATCH_LEVEL 运行?

    这些可能会导致您遇到的错误。

    【讨论】:

    • 谢谢克里斯托弗。 pDataChannel 是在 NonPagedPool 分配的,它不为空。而此时 IRQL 为 PASSIVE_LEVEL。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    • 2014-12-19
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多