引用 7 楼 nwpu043814 的回复:
蓝屏信息如下(附加了些解释信息):
An attempt was made to touch pageable memory at an IRQL that is too high.
Parameter 1 - Memory referenced.
Parameter 2 - IRQL
Parameter 3 - Value (0=read, 1=write)
Parameter 4……
提示信息说的很清除,你DeviceA或者DeviceB访问了不合适的内存空间。如果用WinDBG调试,那么会有更多的信息告诉你到底0x804F9E4A指向什么。
我怀疑IoBuildDeviceIoControlRequest的倒数第二个参数event在pageable memory 中分配造成问题。可以考虑将event申明在Device Extension中试试。
//用IoBuildDeviceIoControlRequest创建IRP
irp = IoBuildDeviceIoControlRequest(IoctlControlCode,
TopOfDeivceStack,
InputBuffer,
InputBufferLength,
OutputBuffer,
OutputBufferLength,
FALSE,
&event,
&ioStatus);