0

我必须维护一个 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. 是否有任何工具/技术可以帮助我找到驱动程序中的错误?
4

1 回答 1

0

对于此问题,不应有任何特定于 Windows 8 的内容。我建议开始通过远程系统使用 WinDbg 调试您的驱动程序。有了这个,你可以设置断点,单步执行代码,最重要的是获得崩溃的事后信息。一旦你连接了一台机器,你可以看到它们崩溃使用analyze -v来获取信息。OSR 是一个很好的 BSOD 调试资源

于 2014-03-28T21:53:37.633 回答