what the potential problem is when call IoRequestDpc

My dirver had been build succefully,

Now ,I am debuging my ISR and DPC .

When the code run at IoRequestDpc, the error occured:

kd> g

Enter OnInterrupt.

Breakpoint 10 hit
ISA!OnInterrupt+0x26:
f89e1906 8b550c mov edx,dword ptr [ebp+0Ch]
kd> t
nt!KeInsertQueueDpc:
804e4e22 8bff mov edi,edi
kd> g

*** Fatal System Error: 0x0000000a
(0x00000090,0x0000001E,0x00000001,0x804E4E5B)

Break instruction exception - code 80000003 (first chance)

A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been invoked.

A fatal system error has occurred.

Connected to Windows XP 2600 x86 compatible target at (Sun Apr 4 21:24:02.421 2010 (GMT+8)), ptr64 FALSE
Loading Kernel Symbols


Loading User Symbols

Loading unloaded module list

*** WARNING: Unable to verify timestamp for ialmrnt5.dll
*** ERROR: Module load completed but symbols could not be loaded for ialmrnt5.dll
*** WARNING: Unable to verify timestamp for ialmdd5.DLL
*** ERROR: Module load completed but symbols could not be loaded for ialmdd5.DLL
*** ERROR: Module load completed but symbols could not be loaded for WINDRVR.SYS
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck A, {90, 1e, 1, 804e4e5b}

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\halaacpi.dll\41107B2920380\halaacpi.dll
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\kdcom.dll\3B7D83461b80\kdcom.dll
???3??2???t??

Probably caused by : ISA.sys ( ISA!OnInterrupt+39 )

Followup: MachineOwner

nt!RtlpBreakWithStatusInstruction:
804e4b25 cc int 3
kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

IRQL_NOT_LESS_OR_EQUAL (a)
An attempt was made to access a pageable (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: 00000090, memory referenced
Arg2: 0000001e, IRQL
Arg3: 00000001, bitfield :
bit 0 : value 0 = read operation, 1 = write operation
bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status)
Arg4: 804e4e5b, address which referenced memory

Debugging Details:

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\halaacpi.dll\41107B2920380\halaacpi.dll
???3??2???t??

Unable to open image file: C:\WINDOWS\Symbols\dll\kdcom.dll\3B7D83461b80\kdcom.dll
???3??2???t??

WRITE_ADDRESS: 00000090

CURRENT_IRQL: 1e

FAULTING_IP:
nt!KeInsertQueueDpc+39
804e4e5b 0fb111 cmpxchg dword ptr [ecx],edx

DEFAULT_BUCKET_ID: DRIVER_FAULT

BUGCHECK_STR: 0xA

PROCESS_NAME: Idle

TRAP_FRAME: 80551780 – (.trap 0xffffffff80551780)
ErrCode = 00000002
eax=00000000 ebx=805518d0 ecx=00000090 edx=ffdff9c0 esi=ffdff120 edi=00000074
eip=804e4e5b esp=805517f4 ebp=80551804 iopl=0 nv up ei pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010206
nt!KeInsertQueueDpc+0x39:
804e4e5b 0fb111 cmpxchg dword ptr [ecx],edx ds:0023:00000090=???
Resetting default scope

LAST_CONTROL_TRANSFER: from 805338e7 to 804e4b25

STACK_TEXT:
80551334 805338e7 00000003 80551690 00000000 nt!RtlpBreakWithStatusInstruction
80551380 805343be 00000003 00000090 804e4e5b nt!KiBugCheckDebugBreak+0x19
80551760 804e3158 0000000a 00000090 0000001e nt!KeBugCheck2+0x574
80551760 804e4e5b 0000000a 00000090 0000001e nt!KiTrap0E+0x233
80551804 f89e1919 00000090 00000000 81e430e8 nt!KeInsertQueueDpc+0x39
8055181c 804dbd9f 81e72368 81e430e8 00010009 ISA!OnInterrupt+0x39 [f:\xwork\isa2\dispatch.cpp @ 527]
8055181c f8613062 81e72368 81e430e8 00010009 nt!KiInterruptDispatch+0x3d
805518d0 804dd0d7 00000000 0000000e 00000000 intelppm!AcpiC1Idle+0x12
805518d4 00000000 0000000e 00000000 00000000 nt!KiIdleLoop+0x10

STACK_COMMAND: kb

FOLLOWUP_IP:
ISA!OnInterrupt+39 [f:\xwork\isa2\dispatch.cpp @ 527]
f89e1919 68682c9ef8 push offset ISA!`string’ (f89e2c68)

FAULTING_SOURCE_CODE:
523: PDEVICE_OBJECT fdo = dx->pDeviceObject;
524:
525: IoRequestDpc( fdo , NULL , (PVOID)dx ) ;
526:

527: KdPrint(( “OnInterrupt End.\n\n”));
528:
529: return TRUE ;
530:
531: }
532:

SYMBOL_STACK_INDEX: 5

SYMBOL_NAME: ISA!OnInterrupt+39

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: ISA

IMAGE_NAME: ISA.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 4bb8870e

FAILURE_BUCKET_ID: 0xA_ISA!OnInterrupt+39

BUCKET_ID: 0xA_ISA!OnInterrupt+39

Followup: MachineOwner

kd> .crash
Shutdown occurred at (Sun Apr 4 21:39:50.750 2010 (GMT+8))…unloading all symbol tables.
Waiting to reconnect…

Well having correct symbols would help, without them asking bug check
questions is pretty worthless. As it is the question is did you use
IoInitializeDpcRequest in your AddDevice routine.

Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr

-----Original Message-----
From: xxxxx@gmail.com [mailto:xxxxx@gmail.com]
Posted At: Sunday, April 04, 2010 1:19 PM
Posted To: ntdev
Conversation: what the potential problem is when call IoRequestDpc
Subject: what the potential problem is when call IoRequestDpc

My dirver had been build succefully,

Now ,I am debuging my ISR and DPC .

When the code run at IoRequestDpc, the error occured:

kd> g

Enter OnInterrupt.

Breakpoint 10 hit
ISA!OnInterrupt+0x26:
f89e1906 8b550c mov edx,dword ptr [ebp+0Ch]
kd> t
nt!KeInsertQueueDpc:
804e4e22 8bff mov edi,edi
kd> g

*** Fatal System Error: 0x0000000a
(0x00000090,0x0000001E,0x00000001,0x804E4E5B)

Break instruction exception - code 80000003 (first chance)

A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been
invoked.

A fatal system error has occurred.

Connected to Windows XP 2600 x86 compatible target at (Sun Apr 4
21:24:02.421
2010 (GMT+8)), ptr64 FALSE Loading Kernel Symbols


Loading User Symbols

Loading unloaded module list

*** WARNING: Unable to verify timestamp for ialmrnt5.dll
*** ERROR: Module load completed but symbols could not be loaded for
ialmrnt5.dll
*** WARNING: Unable to verify timestamp for ialmdd5.DLL
*** ERROR: Module load completed but symbols could not be loaded for
ialmdd5.DLL
*** ERROR: Module load completed but symbols could not be loaded for
WINDRVR.SYS

************************************************************************
******

*
*
*
* Bugcheck Analysis
*
*
*

************************************************************************
******

*

Use !analyze -v to get detailed debugging information.

BugCheck A, {90, 1e, 1, 804e4e5b}

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\halaacpi.dll\41107B2920380\halaacpi.dll
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\kdcom.dll\3B7D83461b80\kdcom.dll
??m3?r2???(???t??

Probably caused by : ISA.sys ( ISA!OnInterrupt+39 )

Followup: MachineOwner

nt!RtlpBreakWithStatusInstruction:
804e4b25 cc int 3
kd> !analyze -v

************************************************************************
******

*
*
*
* Bugcheck Analysis
*
*
*

************************************************************************
******

*

IRQL_NOT_LESS_OR_EQUAL (a)
An attempt was made to access a pageable (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: 00000090, memory referenced
Arg2: 0000001e, IRQL
Arg3: 00000001, bitfield :
bit 0 : value 0 = read operation, 1 = write operation
bit 3 : value 0 = not an execute operation, 1 = execute
operation (only
on chips which support this level of status)
Arg4: 804e4e5b, address which referenced memory

Debugging Details:

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\halaacpi.dll\41107B2920380\halaacpi.dll
??m3?r2???(???t??

Unable to open image file:
C:\WINDOWS\Symbols\dll\kdcom.dll\3B7D83461b80\kdcom.dll
??m3?r2???(???t??

WRITE_ADDRESS: 00000090

CURRENT_IRQL: 1e

FAULTING_IP:
nt!KeInsertQueueDpc+39
804e4e5b 0fb111 cmpxchg dword ptr [ecx],edx

DEFAULT_BUCKET_ID: DRIVER_FAULT

BUGCHECK_STR: 0xA

PROCESS_NAME: Idle

TRAP_FRAME: 80551780 – (.trap 0xffffffff80551780) ErrCode = 00000002
eax=00000000 ebx=805518d0 ecx=00000090 edx=ffdff9c0 esi=ffdff120
edi=00000074
eip=804e4e5b esp=805517f4 ebp=80551804 iopl=0 nv up ei pl nz
na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000
efl=00010206
nt!KeInsertQueueDpc+0x39:
804e4e5b 0fb111 cmpxchg dword ptr [ecx],edx
ds:0023:00000090=???
Resetting default scope

LAST_CONTROL_TRANSFER: from 805338e7 to 804e4b25

STACK_TEXT:
80551334 805338e7 00000003 80551690 00000000
nt!RtlpBreakWithStatusInstruction
80551380 805343be 00000003 00000090 804e4e5b
nt!KiBugCheckDebugBreak+0x19
80551760 804e3158 0000000a 00000090 0000001e nt!KeBugCheck2+0x574
80551760
804e4e5b 0000000a 00000090 0000001e nt!KiTrap0E+0x233
80551804 f89e1919 00000090 00000000 81e430e8 nt!KeInsertQueueDpc+0x39
8055181c
804dbd9f 81e72368 81e430e8 00010009 ISA!OnInterrupt+0x39
[f:\xwork\isa2\dispatch.cpp @ 527] 8055181c f8613062 81e72368 81e430e8
00010009 nt!KiInterruptDispatch+0x3d 805518d0 804dd0d7 00000000
0000000e
00000000 intelppm!AcpiC1Idle+0x12
805518d4 00000000 0000000e 00000000 00000000 nt!KiIdleLoop+0x10

STACK_COMMAND: kb

FOLLOWUP_IP:
ISA!OnInterrupt+39 [f:\xwork\isa2\dispatch.cpp @ 527]
f89e1919 68682c9ef8 push offset ISA!`string’ (f89e2c68)

FAULTING_SOURCE_CODE:
523: PDEVICE_OBJECT fdo = dx->pDeviceObject;
524:
525: IoRequestDpc( fdo , NULL , (PVOID)dx ) ;
526:
> 527: KdPrint(( “OnInterrupt End.\n\n”));
528:
529: return TRUE ;
530:
531: }
532:

SYMBOL_STACK_INDEX: 5

SYMBOL_NAME: ISA!OnInterrupt+39

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: ISA

IMAGE_NAME: ISA.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 4bb8870e

FAILURE_BUCKET_ID: 0xA_ISA!OnInterrupt+39

BUCKET_ID: 0xA_ISA!OnInterrupt+39

Followup: MachineOwner

kd> .crash
Shutdown occurred at (Sun Apr 4 21:39:50.750 2010
(GMT+8))…unloading all
symbol tables.
Waiting to reconnect…

__________ Information from ESET Smart Security, version of virus
signature
database 4999 (20100404) __________

The message was checked by ESET Smart Security.

http://www.eset.com

Don’s advice is useful. I’ll offer a different kind of advice. Never name
your driver ISA.sys. Too many other people might use the same name.


Jake Oshins
Hyper-V I/O Architect
Windows Kernel Group

This post implies no warranties and confers no rights.


wrote in message news:xxxxx@ntdev…
>
> My dirver had been build succefully,
>
> Now ,I am debuging my ISR and DPC .
>
> When the code run at IoRequestDpc, the error occured:
>
> kd> g
>
>
> Enter OnInterrupt.
>
> Breakpoint 10 hit
> ISA!OnInterrupt+0x26:
> f89e1906 8b550c mov edx,dword ptr [ebp+0Ch]
> kd> t
> nt!KeInsertQueueDpc:
> 804e4e22 8bff mov edi,edi
> kd> g
>
> Fatal System Error: 0x0000000a
> (0x00000090,0x0000001E,0x00000001,0x804E4E5B)
>
> Break instruction exception - code 80000003 (first chance)
>
> A fatal system error has occurred.
> Debugger entered on first try; Bugcheck callbacks have not been invoked.
>
> A fatal system error has occurred.
>
> Connected to Windows XP 2600 x86 compatible target at (Sun Apr 4
> 21:24:02.421 2010 (GMT+8)), ptr64 FALSE
> Loading Kernel Symbols
> …
> …
> Loading User Symbols
>
> Loading unloaded module list
> …
>
WARNING: Unable to verify timestamp for ialmrnt5.dll
> ERROR: Module load completed but symbols could not be loaded for
> ialmrnt5.dll
>
WARNING: Unable to verify timestamp for ialmdd5.DLL
> ERROR: Module load completed but symbols could not be loaded for
> ialmdd5.DLL
>
ERROR: Module load completed but symbols could not be loaded for
> WINDRVR.SYS
> ***
> *
>
> * Bugcheck Analysis
>
> *
>
>

>
> Use !analyze -v to get detailed debugging information.
>
> BugCheck A, {90, 1e, 1, 804e4e5b}
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\halaacpi.dll\41107B2920380\halaacpi.dll
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\kdcom.dll\3B7D83461b80\kdcom.dll
> ??í3?ò2???¨???t??
>
> Probably caused by : ISA.sys ( ISA!OnInterrupt+39 )
>
> Followup: MachineOwner
> ---------
>
> nt!RtlpBreakWithStatusInstruction:
> 804e4b25 cc int 3
> kd> !analyze -v
> ***
> *
>
> * Bugcheck Analysis
>
> *
>
>

>
> IRQL_NOT_LESS_OR_EQUAL (a)
> An attempt was made to access a pageable (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: 00000090, memory referenced
> Arg2: 0000001e, IRQL
> Arg3: 00000001, bitfield :
> bit 0 : value 0 = read operation, 1 = write operation
> bit 3 : value 0 = not an execute operation, 1 = execute operation (only on
> chips which support this level of status)
> Arg4: 804e4e5b, address which referenced memory
>
> Debugging Details:
> ------------------
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\ntoskrnl.exe\41108004214600\ntoskrnl.exe
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\halaacpi.dll\41107B2920380\halaacpi.dll
> ??í3?ò2???¨???t??
>
> Unable to open image file:
> C:\WINDOWS\Symbols\dll\kdcom.dll\3B7D83461b80\kdcom.dll
> ??í3?ò2???¨???t??
>
>
> WRITE_ADDRESS: 00000090
>
> CURRENT_IRQL: 1e
>
> FAULTING_IP:
> nt!KeInsertQueueDpc+39
> 804e4e5b 0fb111 cmpxchg dword ptr [ecx],edx
>
> DEFAULT_BUCKET_ID: DRIVER_FAULT
>
> BUGCHECK_STR: 0xA
>
> PROCESS_NAME: Idle
>
> TRAP_FRAME: 80551780 – (.trap 0xffffffff80551780)
> ErrCode = 00000002
> eax=00000000 ebx=805518d0 ecx=00000090 edx=ffdff9c0 esi=ffdff120
> edi=00000074
> eip=804e4e5b esp=805517f4 ebp=80551804 iopl=0 nv up ei pl nz na pe
> nc
> cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000
> efl=00010206
> nt!KeInsertQueueDpc+0x39:
> 804e4e5b 0fb111 cmpxchg dword ptr [ecx],edx
> ds:0023:00000090=???
> Resetting default scope
>
> LAST_CONTROL_TRANSFER: from 805338e7 to 804e4b25
>
> STACK_TEXT:
> 80551334 805338e7 00000003 80551690 00000000
> nt!RtlpBreakWithStatusInstruction
> 80551380 805343be 00000003 00000090 804e4e5b nt!KiBugCheckDebugBreak+0x19
> 80551760 804e3158 0000000a 00000090 0000001e nt!KeBugCheck2+0x574
> 80551760 804e4e5b 0000000a 00000090 0000001e nt!KiTrap0E+0x233
> 80551804 f89e1919 00000090 00000000 81e430e8 nt!KeInsertQueueDpc+0x39
> 8055181c 804dbd9f 81e72368 81e430e8 00010009 ISA!OnInterrupt+0x39
> [f:\xwork\isa2\dispatch.cpp @ 527]
> 8055181c f8613062 81e72368 81e430e8 00010009 nt!KiInterruptDispatch+0x3d
> 805518d0 804dd0d7 00000000 0000000e 00000000 intelppm!AcpiC1Idle+0x12
> 805518d4 00000000 0000000e 00000000 00000000 nt!KiIdleLoop+0x10
>
>
> STACK_COMMAND: kb
>
> FOLLOWUP_IP:
> ISA!OnInterrupt+39 [f:\xwork\isa2\dispatch.cpp @ 527]
> f89e1919 68682c9ef8 push offset ISA!`string’ (f89e2c68)
>
> FAULTING_SOURCE_CODE:
> 523: PDEVICE_OBJECT fdo = dx->pDeviceObject;
> 524:
> 525: IoRequestDpc( fdo , NULL , (PVOID)dx ) ;
> 526:
>> 527: KdPrint(( “OnInterrupt End.\n\n”));
> 528:
> 529: return TRUE ;
> 530:
> 531: }
> 532:
>
>
> SYMBOL_STACK_INDEX: 5
>
> SYMBOL_NAME: ISA!OnInterrupt+39
>
> FOLLOWUP_NAME: MachineOwner
>
> MODULE_NAME: ISA
>
> IMAGE_NAME: ISA.sys
>
> DEBUG_FLR_IMAGE_TIMESTAMP: 4bb8870e
>
> FAILURE_BUCKET_ID: 0xA_ISA!OnInterrupt+39
>
> BUCKET_ID: 0xA_ISA!OnInterrupt+39
>
> Followup: MachineOwner
> ---------
>
>
> kd> .crash
> Shutdown occurred at (Sun Apr 4 21:39:50.750 2010 (GMT+8))…unloading
> all symbol tables.
> Waiting to reconnect…
>
>

kd> g
Enter OnInterrupt.

Breakpoint 10 hit
KDISA!OnInterrupt+0x14:
f8a1d774 8b442410 mov eax,dword ptr [esp+10h]
kd> g

*** Fatal System Error: 0x0000000a
(0x00000090,0x0000001E,0x00000001,0x804E4E5B)

Break instruction exception - code 80000003 (first chance)

A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been invoked.

A fatal system error has occurred.

Connected to Windows XP 2600 x86 compatible target at (Mon Apr 5 16:27:33.078 2010 (GMT+8)), ptr64 FALSE
Loading Kernel Symbols


Loading User Symbols

Loading unloaded module list

*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck A, {90, 1e, 1, 804e4e5b}

Probably caused by : KDISA.sys ( KDISA!OnInterrupt+2a )

Followup: MachineOwner

nt!RtlpBreakWithStatusInstruction:
804e4b25 cc int 3
kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

IRQL_NOT_LESS_OR_EQUAL (a)
An attempt was made to access a pageable (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: 00000090, memory referenced
Arg2: 0000001e, IRQL
Arg3: 00000001, bitfield :
bit 0 : value 0 = read operation, 1 = write operation
bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status)
Arg4: 804e4e5b, address which referenced memory

Debugging Details:

WRITE_ADDRESS: 00000090

CURRENT_IRQL: 1e

FAULTING_IP:
nt!KeInsertQueueDpc+39
804e4e5b 0fb111 cmpxchg dword ptr [ecx],edx

DEFAULT_BUCKET_ID: DRIVER_FAULT

BUGCHECK_STR: 0xA

PROCESS_NAME: Idle

TRAP_FRAME: 80551788 – (.trap 0xffffffff80551788)
ErrCode = 00000002
eax=00000000 ebx=805518d0 ecx=00000090 edx=ffdff9c0 esi=ffdff120 edi=00000074
eip=804e4e5b esp=805517fc ebp=8055180c iopl=0 nv up ei pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010206
nt!KeInsertQueueDpc+0x39:
804e4e5b 0fb111 cmpxchg dword ptr [ecx],edx ds:0023:00000090=???
Resetting default scope

LAST_CONTROL_TRANSFER: from 805338e7 to 804e4b25

STACK_TEXT:
8055133c 805338e7 00000003 80551698 00000000 nt!RtlpBreakWithStatusInstruction
80551388 805343be 00000003 00000090 804e4e5b nt!KiBugCheckDebugBreak+0x19
80551768 804e3158 0000000a 00000090 0000001e nt!KeBugCheck2+0x574
80551768 804e4e5b 0000000a 00000090 0000001e nt!KiTrap0E+0x233
8055180c f8a1d78a 00000090 00000000 81d180e8 nt!KeInsertQueueDpc+0x39
8055181c 804dbd9f 81eef008 81d180e8 00010009 KDISA!OnInterrupt+0x2a [f:\xwork\isa2\dispatch.cpp @ 529]
8055181c f8623062 81eef008 81d180e8 00010009 nt!KiInterruptDispatch+0x3d
805518d0 804dd0d7 00000000 0000000e 00000000 intelppm!AcpiC1Idle+0x12
805518d4 00000000 0000000e 00000000 00000000 nt!KiIdleLoop+0x10

STACK_COMMAND: kb

FOLLOWUP_IP:
KDISA!OnInterrupt+2a [f:\xwork\isa2\dispatch.cpp @ 529]
f8a1d78a b001 mov al,1

FAULTING_SOURCE_CODE:
525: IoRequestDpc( dx->pDeviceObject , NULL , (PVOID)dx ) ;
526:
527: // KdPrint(( “OnInterrupt End.\n\n”));
528:

529: return TRUE ;
530:
531: }
532:
533:
534:

SYMBOL_STACK_INDEX: 5

SYMBOL_NAME: KDISA!OnInterrupt+2a

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: KDISA

IMAGE_NAME: KDISA.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 4bb98ec8

FAILURE_BUCKET_ID: 0xA_KDISA!OnInterrupt+2a

BUCKET_ID: 0xA_KDISA!OnInterrupt+2a

Followup: MachineOwner

kd> lmvm KDISA
start end module name
f8a1d000 f8a1f880 KDISA (private pdb symbols) f:\xwork\isa2\debug\ISA.pdb
Loaded symbol image file: KDISA.sys
Image path: \SystemRoot\system32\DRIVERS\KDISA.sys
Image name: KDISA.sys
Timestamp: Mon Apr 05 15:18:32 2010 (4BB98EC8)
CheckSum: 00005051
ImageSize: 00002880
Translations: 0000.04b0 0000.04e4 0409.04b0 0409.04e4

Your device object is bogus.

dx->pDeviceObject == 0x00000090

Probably not a valid device object, right?

Mark Roddy

On Mon, Apr 5, 2010 at 4:33 AM, wrote:

>
> kd> g
> Enter OnInterrupt.
>
> Breakpoint 10 hit
> KDISA!OnInterrupt+0x14:
> f8a1d774 8b442410 mov eax,dword ptr [esp+10h]
> kd> g
>
> Fatal System Error: 0x0000000a
> (0x00000090,0x0000001E,0x00000001,0x804E4E5B)
>
> Break instruction exception - code 80000003 (first chance)
>
> A fatal system error has occurred.
> Debugger entered on first try; Bugcheck callbacks have not been invoked.
>
> A fatal system error has occurred.
>
> Connected to Windows XP 2600 x86 compatible target at (Mon Apr 5
> 16:27:33.078 2010 (GMT+8)), ptr64 FALSE
> Loading Kernel Symbols
> …
> …
> Loading User Symbols
>
> Loading unloaded module list
> …
>
>
****************************************************************************
> *
> *
> * Bugcheck Analysis
> *
> *
> *
>
>
>
> Use !analyze -v to get detailed debugging information.
>
> BugCheck A, {90, 1e, 1, 804e4e5b}
>
> Probably caused by : KDISA.sys ( KDISA!OnInterrupt+2a )
>
> Followup: MachineOwner
> ---------
>
> nt!RtlpBreakWithStatusInstruction:
> 804e4b25 cc int 3
> kd> !analyze -v
>
>

> *
> *
> * Bugcheck Analysis
> *
> *
> *
>
> *******************************************************************************
>
> IRQL_NOT_LESS_OR_EQUAL (a)
> An attempt was made to access a pageable (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: 00000090, memory referenced
> Arg2: 0000001e, IRQL
> Arg3: 00000001, bitfield :
> bit 0 : value 0 = read operation, 1 = write operation
> bit 3 : value 0 = not an execute operation, 1 = execute operation
> (only on chips which support this level of status)
> Arg4: 804e4e5b, address which referenced memory
>
> Debugging Details:
> ------------------
>
>
> WRITE_ADDRESS: 00000090
>
> CURRENT_IRQL: 1e
>
> FAULTING_IP:
> nt!KeInsertQueueDpc+39
> 804e4e5b 0fb111 cmpxchg dword ptr [ecx],edx
>
> DEFAULT_BUCKET_ID: DRIVER_FAULT
>
> BUGCHECK_STR: 0xA
>
> PROCESS_NAME: Idle
>
> TRAP_FRAME: 80551788 – (.trap 0xffffffff80551788)
> ErrCode = 00000002
> eax=00000000 ebx=805518d0 ecx=00000090 edx=ffdff9c0 esi=ffdff120
> edi=00000074
> eip=804e4e5b esp=805517fc ebp=8055180c iopl=0 nv up ei pl nz na pe
> nc
> cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000
> efl=00010206
> nt!KeInsertQueueDpc+0x39:
> 804e4e5b 0fb111 cmpxchg dword ptr [ecx],edx
> ds:0023:00000090=???
> Resetting default scope
>
> LAST_CONTROL_TRANSFER: from 805338e7 to 804e4b25
>
> STACK_TEXT:
> 8055133c 805338e7 00000003 80551698 00000000
> nt!RtlpBreakWithStatusInstruction
> 80551388 805343be 00000003 00000090 804e4e5b nt!KiBugCheckDebugBreak+0x19
> 80551768 804e3158 0000000a 00000090 0000001e nt!KeBugCheck2+0x574
> 80551768 804e4e5b 0000000a 00000090 0000001e nt!KiTrap0E+0x233
> 8055180c f8a1d78a 00000090 00000000 81d180e8 nt!KeInsertQueueDpc+0x39
> 8055181c 804dbd9f 81eef008 81d180e8 00010009 KDISA!OnInterrupt+0x2a
> [f:\xwork\isa2\dispatch.cpp @ 529]
> 8055181c f8623062 81eef008 81d180e8 00010009 nt!KiInterruptDispatch+0x3d
> 805518d0 804dd0d7 00000000 0000000e 00000000 intelppm!AcpiC1Idle+0x12
> 805518d4 00000000 0000000e 00000000 00000000 nt!KiIdleLoop+0x10
>
>
> STACK_COMMAND: kb
>
> FOLLOWUP_IP:
> KDISA!OnInterrupt+2a [f:\xwork\isa2\dispatch.cpp @ 529]
> f8a1d78a b001 mov al,1
>
> FAULTING_SOURCE_CODE:
> 525: IoRequestDpc( dx->pDeviceObject , NULL , (PVOID)dx ) ;
> 526:
> 527: // KdPrint(( “OnInterrupt End.\n\n”));
> 528:
> > 529: return TRUE ;
> 530:
> 531: }
> 532:
> 533:
> 534:
>
>
> SYMBOL_STACK_INDEX: 5
>
> SYMBOL_NAME: KDISA!OnInterrupt+2a
>
> FOLLOWUP_NAME: MachineOwner
>
> MODULE_NAME: KDISA
>
> IMAGE_NAME: KDISA.sys
>
> DEBUG_FLR_IMAGE_TIMESTAMP: 4bb98ec8
>
> FAILURE_BUCKET_ID: 0xA_KDISA!OnInterrupt+2a
>
> BUCKET_ID: 0xA_KDISA!OnInterrupt+2a
>
> Followup: MachineOwner
> ---------
>
> kd> lmvm KDISA
> start end module name
> f8a1d000 f8a1f880 KDISA (private pdb symbols)
> f:\xwork\isa2\debug\ISA.pdb
> Loaded symbol image file: KDISA.sys
> Image path: \SystemRoot\system32\DRIVERS\KDISA.sys
> Image name: KDISA.sys
> Timestamp: Mon Apr 05 15:18:32 2010 (4BB98EC8)
> CheckSum: 00005051
> ImageSize: 00002880
> Translations: 0000.04b0 0000.04e4 0409.04b0 0409.04e4
>
>
>
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

Hi ,Mark Roddy

Seems it is
when it enters in the ISR ,the pdx displays " " in the windbg

What’s wrong ?

By the way ,
Do you get infromation from blow?

kd> g

*** Fatal System Error: 0x0000000a (0x00000090,0x0000001E,0x00000001,0x804E4E5B)
Break instruction exception - code 80000003 (first chance)

How to read this information?

Thanks

I suspect the variable dx is null. If you look at the call stack of the
output, you will see the first argument to KeInstertQueueDpc is 90,
which if you check the IpRequestDpc macro you see the DPC is the first
argument. Since 90 sounds like a fine offset in a structure, I suspect
that dx is NULL.

Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr

-----Original Message-----
From: xxxxx@gmail.com [mailto:xxxxx@gmail.com]
Posted At: Monday, April 05, 2010 11:08 AM
Posted To: ntdev
Conversation: what the potential problem is when call IoRequestDpc
Subject: RE: what the potential problem is when call IoRequestDpc

Hi ,Mark Roddy

Seems it is
when it enters in the ISR ,the pdx displays " "
in the
> windbg
>
> What’s wrong ?
>
> By the way ,
> Do you get infromation from blow?
>
> kd> g
>
> *** Fatal System Error: 0x0000000a
> (0x00000090,0x0000001E,0x00000001,0x804E4E5B)
> Break instruction exception - code 80000003 (first chance)
>
> How to read this information?
>
> Thanks
>
>
>
>
>
> Information from ESET Smart Security, version of virus
signature
> database 5001 (20100405)

>
> The message was checked by ESET Smart Security.
>
> http://www.eset.com
>

Then , what the problem is ?

Long FFang wrote:

Then , what the problem is ?

I’d say the problem is whatever method you’re using to obtain “dx” is not working.

If this is a dispatch routine, judging by your backtrace, perhaps you need to look at pDeviceObject->DeviceExtension, assuming you’ve populated this properly in AddDevice() or wherever…

This is in ISR

Long FFang wrote:

This is in ISR

Yes, I think we all understood that. Did you read and understand what I wrote? You are dereferencing a bad pointer into your device extension. How are you assigning the variable “dx” inside your ISR?

Yes of course

My ISR is below:

BOOLEAN OnInterrupt( IN PKINTERRUPT pInterrupt ,
IN PISA_DEVICE_EXTENSION pdx )
{

KdPrint( (“\n\n”) );
KdPrint(( “Enter OnInterrupt.\n\n”));

// PDEVICE_OBJECT fdo = dx->pDeviceObject;

IoRequestDpc( pdx->pDeviceObject , NULL , (PVOID)pdx ) ;

// KdPrint(( “OnInterrupt End.\n\n”));

return TRUE ;

}

Why not look at your call to IoConnectInterrupt and see what is passed in
the third parameter? That is the third item in the structure if you are
using the ‘Ex’ version. If you pass NULL expect to get it in the ISR.

wrote in message news:xxxxx@ntdev…
>
> Yes of course
>
> My ISR is below:
>
> BOOLEAN OnInterrupt( IN PKINTERRUPT pInterrupt ,
> IN PISA_DEVICE_EXTENSION pdx )
> {
>
> KdPrint( (“\n\n”) );
> KdPrint(( “Enter OnInterrupt.\n\n”));
>
> // PDEVICE_OBJECT fdo = dx->pDeviceObject;
>
> IoRequestDpc( pdx->pDeviceObject , NULL , (PVOID)pdx ) ;
>
> // KdPrint(( “OnInterrupt End.\n\n”));
>
> return TRUE ;
>
> }
>
>
>
>
>
>
>

/****************************************************************************************/
case CmResourceTypeInterrupt: //???

GotInterrupt = TRUE;

IrqL = (KIRQL) ResourceTranslated ->u.Interrupt.Level;
vector = ResourceTranslated ->u.Interrupt.Vector;
affinity = ResourceTranslated ->u.Interrupt.Affinity;
if ( ResourceRaw->Flags == CM_RESOURCE_INTERRUPT_LATCHED )
{
mode = Latched;
}
else
{
mode = LevelSensitive;
}
irqshare = ResourceTranslated ->ShareDisposition == CmResourceShareShared;

KdPrint( ( " ResouceType : Interrupt \n\n" )) ;
KdPrint( ( "Vector: 0x%x ( Translated = 0x%x ) \n " , ResourceRaw->u.Interrupt.Vector , vector ) ) ;
KdPrint( ( “IRQL: 0x%x ( Translated = 0x%x ) \n " , ResourceRaw->u.Interrupt.Level , IrqL ) ) ;
KdPrint( ( “Affinity:0x%x ( Translated = 0x%x ) \n " , ResourceRaw->u.Interrupt.Affinity ,affinity ) ) ;
if ( ResourceTranslated->Flags == CM_RESOURCE_INTERRUPT_LATCHED )
{
mode = Latched;
KdPrint( ( " mode : Latched\n”));
}
else
{
mode = LevelSensitive;
KdPrint( ( " mode : Level Sensitive\n”));
}
KdPrint( ( “\n\n” )) ;

break;

/****************************************************************************************/

KdPrint( ( " Calling IoConnectInterrupt() . \n\n\n" ) ) ;
status = IoConnectInterrupt( &pdx->pInterruptObject,
(PKSERVICE_ROUTINE)OnInterrupt,
(PVOID)pdx,
NULL,
vector,
IrqL,
IrqL,
mode,
irqshare,
affinity,
FALSE ) ;

It is work Ok

Have you set a breakpoint in " case CmResourceTypeInterrupt:" and done some
stepping into that case statement to see that things are as you “assume”
them to be? The code you keep flinging at us does not show pdx being defined
let alone being set to anything. Step into the function containing " case
CmResourceTypeInterrupt" and find out if you really are defining and
initializing “pdx” to something besides crap.

Also, obvioulsy " It is work Ok " is blatantly incorrect since when you
call OnInterrupt it fails with a deref’d pdx pointer.

Gary G. Little
H (952) 223-1349
C (952) 454-4629
xxxxx@comcast.net

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@gmail.com
Sent: Tuesday, April 06, 2010 2:17 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] what the potential problem is when call IoRequestDpc

/***************************************************************************
*************/
case CmResourceTypeInterrupt: //???

GotInterrupt = TRUE;

IrqL = (KIRQL) ResourceTranslated
->u.Interrupt.Level;
vector = ResourceTranslated
->u.Interrupt.Vector;
affinity = ResourceTranslated
->u.Interrupt.Affinity;
if ( ResourceRaw->Flags ==
CM_RESOURCE_INTERRUPT_LATCHED )
{
mode = Latched;
}
else
{
mode = LevelSensitive;
}
irqshare = ResourceTranslated ->ShareDisposition ==
CmResourceShareShared;

KdPrint( ( " ResouceType : Interrupt \n\n" )) ;
KdPrint( ( "Vector: 0x%x ( Translated = 0x%x ) \n
" , ResourceRaw->u.Interrupt.Vector , vector ) ) ;
KdPrint( ( “IRQL: 0x%x ( Translated = 0x%x ) \n
" , ResourceRaw->u.Interrupt.Level , IrqL ) ) ;
KdPrint( ( “Affinity:0x%x ( Translated = 0x%x ) \n
" , ResourceRaw->u.Interrupt.Affinity ,affinity ) ) ;
if ( ResourceTranslated->Flags ==
CM_RESOURCE_INTERRUPT_LATCHED )
{
mode = Latched;
KdPrint( ( " mode : Latched\n”));
}
else
{
mode = LevelSensitive;
KdPrint( ( " mode : Level Sensitive\n”));
}
KdPrint( ( “\n\n” )) ;

break;

/***************************************************************************
*************/

KdPrint( ( " Calling IoConnectInterrupt() . \n\n\n" ) ) ;
status = IoConnectInterrupt( &pdx->pInterruptObject,

(PKSERVICE_ROUTINE)OnInterrupt,

(PVOID)pdx,

NULL,

vector,

IrqL,

IrqL,

mode,

irqshare,

affinity,

FALSE ) ;

It is work Ok


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

__________ Information from ESET Smart Security, version of virus signature
database 5004 (20100406) __________

The message was checked by ESET Smart Security.

http://www.eset.com

__________ Information from ESET Smart Security, version of virus signature
database 5004 (20100406) __________

The message was checked by ESET Smart Security.

http://www.eset.com