如何在Windows 8上找到导致BSOD的WDF驱动程序中的错误

时间:2014-03-17 11:10:13

标签: windows wdf

我必须维护一个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后,系统会在一定延迟后崩溃。

验证程序检测到驱动程序中没有错误。我的问题如下:

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

1 个答案:

答案 0 :(得分:0)

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