我有两个驱动程序,即SCSI驱动程序(PCI设备)和虚拟NIC驱动程序(通过SCSI驱动程序传输数据)。
虚拟网卡驱动程序初始状态将调用SCSI驱动程序获取数据哪个用户设置。32位没有问题,但当我在64位环境中尝试时失败。我正在使用windbg.exe调试和获取0x0000007e错误,详细信息如下
Arg1: ffffffffc0000005,未处理的异常代码
Arg2: fffff800040c4bb9,异常发生的地址
Arg3: fffff880045cde88,异常记录地址
Arg4: fffff880045cd6e0,上下文记录地址
调试详细信息:
EXCEPTION_CODE:(非NTSTATUS) 0xc0000005 - 0x%08lx
FAULTING_IP: nt!strncmp+49 rcx 800‘040c4bb9 488b01 mov rax,qword ptr rcx
EXCEPTION_RECORD: fffff880045cde88 - (.exr 0xfffff880045cde88)
ExceptionAddress: fffff800040c4bb9 (nt!strncmp+0x0000000000000049) ExceptionCode: c0000005 (访问违反) ExceptionFlags: 00000000
NumberParameters: 2
参数: 0000000000000000
Parameter1: 0000000005000020
尝试从地址0000000005000020读取
当我在64位时,如何访问另一个驱动程序内存。
发布于 2012-02-23 09:37:40
试图从地址0000000005000020读取
地址不在内核空间中。应该是吧?
32位有问题,但在64位环境中尝试失败
看起来问题就在于将驱动程序移植到64位。对另一个驱动程序内存的访问在32位和64位中是相同的。
https://stackoverflow.com/questions/9405795
复制相似问题