Hi Sir,
I have encountered a big problem in HCT testing.
We have a USB camera device that is passed WHQL in 32bit XP. Now I
am porting it to WinXP x64 platform. After porting, I use it on WinXP
x64 OS very well. I can preview by both AMCap and GraphEdit.
But now the problem comes, when I want to take this driver to go
testing HCT 12.1.01 test kit, It crashes.
The HCT is crashed at selecting device step, not any testing step!
I have check the crash dump for seeking my driver's fault. But I don't
see any thing happening from my driver codes. The bug check code is
0xFC, that is a DEP error. I got no idea about what's going on.
I also try to set TRAP in my code to look last code executing in my
code. it just the SRB_NOTIFY_IDLE_STATE, but I don't support this SRB.
I just simply complete it with STATUS_NOT_IMPLEMENTED.
Please help me to solve this problem, I appreciate your kindness.
The information I got from crash dump is below.
*******************************************************************************
*
*
* Bugcheck Analysis
*
*
*
*******************************************************************************
ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY (fc)
An attempt was made to execute non-executable memory. The guilty
driver
is on the stack trace (and is typically the current instruction
pointer).
When possible, the guilty driver's name (Unicode string) is printed on
the bugcheck screen and saved in KiBugCheckDriver.
Arguments:
Arg1: fffffa8000a1dbc0, Virtual address for the attempted execute.
Arg2: aef0000014f49163, PTE contents.
Arg3: fffffadfeefda890, (reserved)
Arg4: 0000000000000001, (reserved)
Debugging Details:
------------------
DEFAULT_BUCKET_ID: DRIVER_FAULT
BUGCHECK_STR: 0xFC
CURRENT_IRQL: 2
LAST_CONTROL_TRANSFER: from fffff800010b7bbd to fffff80001041910
LOCK_ADDRESS: fffff800011a04e0 -- (!locks fffff800011a04e0)
Resource @ nt!IopDeviceTreeLock (0xfffff800011a04e0) Shared 1 owning
threads
Threads: fffffadff325d470-01<*>
1 total locks, 1 locks currently held
FAULTING_THREAD: fffffadff325d470
PNP_TRIAGE:
Lock address : 0xfffff800011a04e0
Thread Count : 1
Thread address: 0xfffffadff325d470
Thread wait : 0x2a283
TRAP_FRAME: fffffadfeefda890 -- (.trap fffffadfeefda890)
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed.
rax=fffffa8000a1dbc0 rbx=fffffadff35a6a00 rcx=fffffa8000a1dbc0
rdx=fffffadfeefdaa78 rsi=fffffadff35a6c80 rdi=fffffadff26e9000
rip=fffffa8000a1dbc0 rsp=fffffadfeefdaa28 rbp=fffffadff3300b20
r8=0000000000000000 r9=0000000000000000 r10=fffff80001174180
r11=0000000000000000 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0 nv up ei pl zr na po nc
fffffa80`00a1dbc0 48004a00 add [rdx],cl
ds:6a00:aa78=??
Resetting default scope
STACK_TEXT:
fffffadf`eefda7b8 fffff800`010b7bbd : 00000000`000000fc
fffffa80`00a1dbc0 aef00000`14f49163 fffffadf`eefda890 : nt!KeBugCheckEx
fffffadf`eefda7c0 fffff800`01040559 : 00000001`f306fc01
fffffadf`eefda898 fffffadf`eefda800 fffffadf`f0867502 :
nt!MmAccessFault+0x4e1
fffffadf`eefda890 fffffa80`00a1dbc0 : fffff800`01369d2f
fffffa80`0298c660 fffffa80`0298c660 00000000`00000000 :
nt!KiPageFault+0x119
fffffadf`eefdaa28 fffff800`01369d2f : fffffa80`0298c660
fffffa80`0298c660 00000000`00000000 fffffadf`f3386b30 :
0xfffffa80`00a1dbc0
fffffadf`eefdaa30 fffff800`0130f237 : 00000000`00000000
fffffadf`eefdabd8 00000000`00000000 fffffa80`009a4800 :
nt!PpCriticalGetDeviceLocationStrings+0x263
fffffadf`eefdab40 fffff800`0128d449 : fffffadf`f325d470
00000000`00000000 00000000`00000001 00000000`00000001 :
nt!PiControlGetPropertyData+0x379
fffffadf`eefdabd0 fffff800`01041422 : fffffadf`f325d470
00000000`00b7f2d0 00000000`00000000 fffffadf`f325d470 :
nt!NtPlugPlayControl+0x1d2
fffffadf`eefdac70 00000000`78ef1eca : 00000000`00000000
00000000`00000000 00000000`00000000 00000000`00000000 :
nt!KiSystemServiceCopyEnd+0x3
00000000`00b7f278 00000000`00000000 : 00000000`00000000
00000000`00000000 00000000`00000000 00000000`00000000 : 0x78ef1eca
STACK_COMMAND: .thread fffffadff325d470 ; kb
FOLLOWUP_IP:
nt!KiPageFault+119
fffff800`01040559 85c0 test eax,eax
SYMBOL_STACK_INDEX: 2
FOLLOWUP_NAME: MachineOwner
SYMBOL_NAME: nt!KiPageFault+119
MODULE_NAME: nt
IMAGE_NAME: ntoskrnl.exe
DEBUG_FLR_IMAGE_TIMESTAMP: 42436096
FAILURE_BUCKET_ID: X64_0xFC_nt!KiPageFault+119
BUCKET_ID: X64_0xFC_nt!KiPageFault+119
Followup: MachineOwner
---------