Hello All!
My system thread build Irp IRP_MJ_READ and send it to
Redirector. UserBuffer and SystemBuffer of the Irp point
to buffer allocated from NonPaged pool.MdlAddress set to
NULL. After the system thread called IoCallDriver and send
the irp to Redirector, Exception IRQL_NOT_LESS_OR_EQUAL
raises.
Need your help. Thank you!
Another question is IRQL at which the system thread runs.
it runs at DISPATCH_LEVEL or Higher level. How to minish
the Irql?
here is the information from analysis of Crash dump.
Microsoft (R) Windows Debugger Version 6.0.0017.0
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [D:\WINNT\MEMORY.DMP]
Kernel Dump File: Full address space is available
Symbol search path is: d:\winnt\symbols
Executable search path is:
Windows 2000 Kernel Version 2195 (Service Pack 2) UP Free
x86 compatible
Product: Server
Kernel base = 0x80400000 PsLoadedModuleList = 0x8046ccf0
Debug session time: Thu Jun 05 02:09:13 2003
System Uptime: 0 days 1:53:18.540
Loading Kernel Symbols
............................................................
...........................................
Loading unloaded module list
.............
Loading User Symbols
***********************************************************
********************
*
*
* Bugcheck
Analysis *
*
*
***********************************************************
********************
Use !analyze -v to get detailed debugging information.
BugCheck A, {e3ba4040, a7, 0, 8043700b}
Probably caused by : mrxsmb.sys ( mrxsmb!
__SmbPseCreateOrdinaryExchange+209 )
Followup: MachineOwner
kd> !analyze -v
***********************************************************
********************
*
*
* Bugcheck
Analysis *
*
*
***********************************************************
********************
IRQL_NOT_LESS_OR_EQUAL (a)
An attempt was made to access a pagable (or completely
invalid) address at an
interrupt request level (IRQL) that is too high. This is
usually
caused by drivers using improper addresses.
If a kernel debugger is available get the stack backtrace.
Arguments:
Arg1: e3ba4040, memory referenced
Arg2: 000000a7, IRQL
Arg3: 00000000, value 0 = read operation, 1 = write
operation
Arg4: 8043700b, address which referenced memory
Debugging Details:
READ_ADDRESS: e3ba4040 Paged pool
CURRENT_IRQL: a7
FAULTING_IP:
nt!MmProbeAndLockPages+485
8043700b 8a11 mov dl,[ecx]
DEFAULT_BUCKET_ID: DRIVER_FAULT
BUGCHECK_STR: 0xA
TRAP_FRAME: ed1dd804 -- (.trap ffffffffed1dd804)
ErrCode = 00000000
eax=00000001 ebx=0000000f ecx=e3ba4040 edx=ff476e48
esi=81ec84c0 edi=ff476e2c
eip=8043700b esp=ed1dd878 ebp=ed1dd910 iopl=0 nv
up ei ng nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030
gs=0000 efl=00010286
nt!MmProbeAndLockPages+485:
8043700b 8a11 mov dl,[ecx]
ds:0023:e3ba4040=??
Resetting default context
LAST_CONTROL_TRANSFER: from ed8bb07c to 8043700b
STACK_TEXT:
ed1dd910 ed8bb07c ff476e2c 00000000 00000002 nt!
MmProbeAndLockPages+0x485
ed1dd974 ed8bbe24 ff25d008 ff7948a8 0000000e mrxsmb!
__SmbPseCreateOrdinaryExchange+0x209
ed1dd9ac ed90dcf7 ff25d008 fe1b1b48 ff25d008 mrxsmb!
MRxSmbRead+0x8f
ed1dd9cc ed90e3a3 ed8a7c20 ed90e3f5 ff25d008 rdbss!
RxLowIoSubmit+0x1a3
ed1dd9dc ed90e7f1 ff25d008 fe1b1b48 ff25d008 rdbss!
RxLowIoReadShell+0x2e
fe1b1b48 fe0ff808 00000010 ff34f308 fe1b1b58 rdbss!
RxCommonRead+0x6b6
WARNING: Frame IP not in any known module. Following
frames may be wrong.
00b80006 00000000 00000000 00000000 00000000 0xfe0ff808
FOLLOWUP_IP:
mrxsmb!__SmbPseCreateOrdinaryExchange+209
ed8bb07c 834dfcff or dword ptr [ebp-
0x4],0xffffffff
FOLLOWUP_NAME: MachineOwner
SYMBOL_NAME: mrxsmb!__SmbPseCreateOrdinaryExchange+209
MODULE_NAME: mrxsmb
IMAGE_NAME: mrxsmb.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 3a6407b5
STACK_COMMAND: .trap ffffffffed1dd804 ; kb
BUCKET_ID: 0xA_mrxsmb!__SmbPseCreateOrdinaryExchange+209
Followup: MachineOwner
.