我必须维护一个 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 后,系统会在一定延迟后崩溃。
验证程序未检测到驱动程序中的错误。我的问题如下:
- Windows 8 上的 WDF 有什么特别之处吗?
- 是否有任何工具/技术可以帮助我找到驱动程序中的错误?