【问题标题】:How to find a bug in a WDF driver that causes a BSOD on Windows 8如何在 Windows 8 上查找导致 BSOD 的 WDF 驱动程序中的错误
【发布时间】:2014-03-17 11:10:12
【问题描述】:

我必须维护一个 WDF 驱动程序。这是一个无硬件驱动程序:该驱动程序使用作为 Windows 分区挂载的磁盘文件。所有写入磁盘的数据都由驱动程序加密。驱动程序以内核模式运行。

该驱动程序已在 XP 上开发并成功移植到 Vista 和 7、32 和 64 位。我在 Windows 8 上遇到了一个大问题。驱动程序导致致命的系统错误:

BugCheck 50, {ffffffffffffffd0, 0, fffff800002de33a, 0}
Probably caused by : Wdf01000.sys ( Wdf01000!FxDevice::DispatchWithLock+fa )

使用 WdfObjectDelete() 删除设备后出现问题。只要设备没有被删除,驱动程序就可以正常运行并且没有系统错误。调用 WdfObjectDelete 后,系统会在一定延迟后崩溃。

verifier 未检测到驱动程序中的错误。我的问题如下:

  1. Windows 8 上的 WDF 有什么特别之处吗?
  2. 是否有任何工具/技术可以帮助我找到驱动程序中的错误?

【问题讨论】:

    标签: windows wdf


    【解决方案1】:

    对于此问题,不应有任何特定于 Windows 8 的内容。我建议开始debug your driver with WinDbg via a remote system。有了这个,你可以设置断点,单步执行代码,最重要的是获得崩溃的事后信息。一旦你连接了一台机器,你可以看到它们崩溃了,使用analyze -v 来获取信息。 OSR is a great resource for BSOD debugging.

    【讨论】:

    • This article 是一个很好的错误检查分析资源。
    猜你喜欢
    • 2015-11-30
    • 2017-05-20
    • 2013-03-28
    • 2011-09-10
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多