首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复wdf驱动程序中的PAGE_FAULT_IN_NONPAGED_AREA

如何修复wdf驱动程序中的PAGE_FAULT_IN_NONPAGED_AREA
EN

Stack Overflow用户
提问于 2019-08-06 01:53:15
回答 1查看 210关注 0票数 0

Wdf01000!FxObject::CallCleanupCallbacks中调用WdfObjectDelete时,我在WDF筛选器驱动程序中遇到了BSOD问题。大多数情况下,它工作得很好,但问题有时会在重新启动时发生。有人能给我一些建议吗?谢谢。

堆栈如下所示

代码语言:javascript
复制
ffffaa8e`34afabf8 fffff801`6e8ff731 : 00000000`00000050 ffffaf01`48c9cff0 00000000`00000002 ffffaa8e`34afaee0 : nt!KeBugCheckEx
ffffaa8e`34afac00 fffff801`6e7702e7 : ffffaf01`48c9cc80 00000000`00000002 00000000`00000000 ffffaf01`48c9cff0 : nt!MiSystemFault+0x12ffa1
ffffaa8e`34afad40 fffff801`6e869ac9 : ffffaf01`48cb0e70 00000000`00000001 00000000`00000000 ffffaf01`48c9cd20 : nt!MmAccessFault+0x327
ffffaa8e`34afaee0 fffff801`7a061707 : 000050fe`b73632f8 fffff801`7a064526 ffffaf01`4567ef98 00000000`00000000 : nt!KiPageFault+0x349
ffffaa8e`34afb070 fffff801`7a0645b0 : ffffaf01`48c9cff0 000050fe`bc2df0b8 00000000`00000001 fffff801`7a062f3a : drvxxxx!ControlDevice::deleteDevice+0x47 [c:\works\src\drvxxxx\controldevice.cpp @ 68]
ffffaa8e`34afb0b0 fffff801`7a06297a : ffffaf01`4567ef10 ffffaf01`3dff0fd0 ffffaf01`439ece70 ffffaf01`439ece00 : drvxxxx!Driver::unregisterFilterDevice+0x80 [c:\works\src\drvxxxx\driver.cpp @ 117]
ffffaa8e`34afb100 fffff802`379cc026 : 000050fe`c200f318 ffffaf01`439ece00 00000000`00000000 ffffaa8e`34afb1a8 : drvxxxx!FilterDevice::onCleanup+0x2a [c:\works\src\drvxxxx\filterdevice.cpp @ 263]
ffffaa8e`34afb140 fffff802`379978aa : ffffaf01`3dff0ce0 ffffaa8e`34afb300 ffffaf01`3dff0d00 ffffaf01`3dff0ce0 : Wdf01000!FxObject::CallCleanupCallbacks+0x4e [minkernel\wdf\framework\shared\object\fxobject.cpp @ 353]
ffffaa8e`34afb170 fffff802`379cd7b1 : ffffaa8e`34afb300 ffffaf01`3dff0c01 ffffaf01`3dff0d00 ffff83fb`afa00000 : Wdf01000!FxObject::DisposeChildrenWorker+0x1edea 

我在函数中做的是:

代码语言:javascript
复制
void ControlDevice::deleteDevice()
{
    PAGED_CODE();
    if (m_device)
    {
        WdfObjectDelete(m_device);
        m_device = nullptr;
    }
}

有人知道为什么会这样吗?

EN

回答 1

Stack Overflow用户

发布于 2019-08-07 00:55:14

这个问题可以通过删除代码m_device = nullptr;来修复,虽然不确定原因,但它可以工作。有人知道为什么吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57363768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档