BSOD in 64 bits environment when one driver access another driver memory

0

i have two driver which is SCSI driver (PCI device) and virtual NIC driver (data pass through SCSI driver).

virtual NIC driver initial state will call SCSI driver to get data which user setting. there is ok in 32 bits, but fail when i try in 64 bits environment. i am using windbg.exe to debug and get 0x0000007e error, and detail information is

Arg1: ffffffffc0000005, The exception code that was not handled

Arg2: fffff800040c4bb9, The address that the exception occurred at

Arg3: fffff880045cde88, Exception Record Address

Arg4: fffff880045cd6e0, Context Record Address

Debugging Details:

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - 0x%08lx

FAULTING_IP: nt!strncmp+49 fffff800`040c4bb9 488b01 mov rax,qword ptr [rcx]

EXCEPTION_RECORD: fffff880045cde88 -- (.exr 0xfffff880045cde88)

ExceptionAddress: fffff800040c4bb9 (nt!strncmp+0x0000000000000049)

ExceptionCode: c0000005 (Access violation) ExceptionFlags: 00000000

NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter[1]: 0000000005000020

Attempt to read from address 0000000005000020

how can i access another driver memory when i am in 64 bits.

64-bit
driver
asked on Stack Overflow Feb 23, 2012 by user1220367

1 Answer

1

Attempt to read from address 0000000005000020

The address is not in the kernel space. Should it be?

There is ok in 32 bits, but fail when i try in 64 bits environment

It looks like the problem is in porting your driver to 64 bits. Access to another driver memory is the same in 32 and 64 bits.

answered on Stack Overflow Feb 23, 2012 by Sergey Podobry

User contributions licensed under CC BY-SA 3.0