磁盘卷的过滤器驱动程序导致BSOD 0x7b

时间:2015-11-24 16:13:14

标签: windows windows-7 driver wdm

我开发了磁盘卷加密驱动程序" xxxx_aes"对于像WDM过滤器驱动程序一样实现的MS Windows。 它安装在系统中作为" LowerFilters = xxxx_aes fvevol rdyboost" for" Storage Volumes" class {71A27CDD-812A-11D0-BEC7-08002BE2092F}。

HKLM \ CurrentControlSet \ System \ Services \ xxxx_aes条目包含:Start = 0;类型= 1;标签= 7;组=" Pnp过滤器"。 普通设备堆栈是:

kd> !devstack \Device\HarddiskVolume2
!DevObj   !DrvObj            !DevExt   ObjectName
fffffa8015bf43c0  \Driver\volsnap    fffffa8015bf4510  
fffffa8015bf0660  \Driver\rdyboost   fffffa8015bf07b0  
fffffa8015e3d260  \Driver\fvevol     fffffa8015e3d3b0  
fffffa8015ee9030  \Driver\xxxx_aes   fffffa8015ee9180  
fffffa8015be8480  \Driver\volmgr     fffffa8015be85d0  HarddiskVolume2

它可以在XP x32下运行,甚至可以在Win8 x32 / x64和Win10 x64下运行。它不适用于使用Win7 x64的某些PC,例如安装另一个驱动程序后(可能是CryptoPro,但不是事实)。 系统在启动到BSOD时崩溃并出现错误:

BugCheck 7B, {fffff880009ae7e8, ffffffffc0000034, 0, 0}
Probably caused by : ntkrnlmp.exe ( nt!PnpBootDeviceWait+136 )
Followup: MachineOwner

括号中的Parameter1是UNICODE_STRING的地址,其名称为不可访问的引导设备:

kd> dS fffff880009ae7e8
fffff8a0`00370010  "\ArcName\multi(0)disk(0)rdisk(0)"
fffff8a0`00370050  "partition(2)"

它是驱动器的别名" c:\"或\ Device \ HarddiskVolume2已经加密,应该被驱动程序xxxx_aes挂钩。 呼叫堆栈中的最后一次呼叫指向" nt"模块功能,而不是任何驱动程序。

如果安装断点" bu nt!PnpInitializeBootStartDriver" (在调用堆栈中找到)在WinDbg中然后可以获得所有模块的列表 在引导序列中(如(WCHAR **)(@ rcx + 8)处的参数):

RAW, Wdf01000, msiadrv, vdrvroot, pci, partmgr, volmgr, volmgrx, 
pciide, vmihc, mountmgr, vmbus, vsock, atapi, amdxata, FltMgr,
SymDS, FileInfo, SymEFA, CLFSSci, NTFS, KSecDD, CNGehci, pcw, 
Fs_Rec, NDIS, KSecPkg, Tcpip, StorFlt, 
xxxx_aes,
rdyboost, fvevol, volsnap, spldr, Mup, hwpolicy, disk.

加载disk.sys后出现BSOD。我看到DriverEntry调用了我的驱动程序,但没有看到PnP的AddDevice调用。 所以,司机真的没用了。

这个系统会发生什么?提前谢谢。

PS。我用" swiss-knife"制作了Linux live-CD。工具包括注册表编辑器" fred"和加密卷的FUSE驱动程序(读/写)。所以,我可以探索和编辑崩溃的系统..

0 个答案:

没有答案