BSOD during DevPathExer only under Win7 x64

Hello, hope some one can help me,

My USB driver (CtiUsbLT2.sys) has pass all DTM 1.4 tests under XP’s and Vista’s 32 and 64 bits and also under Win7 32bits. But when testing under Win7 64bits all DTM tests pass except for these two: “Device Path Exerciser” and “IO Cancelation with DevPathExer(Preview)”. The test PC gets a blue screen on driver wdf01000.sys and the MiniDump is below but it does not tell me much as to what my driver may be doing wrong as it is not mentioned. Can some one point me in a right direction to find what the problem is ?

Microsoft (R) Windows Debugger Version 6.11.0001.404 X86
Copyright (c) Microsoft Corporation. All rights reserved.

Loading Dump File [F:\070110-19437-01.dmp]
Mini Kernel Dump File: Only registers and stack trace are available

WARNING: Inaccessible path: ‘C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objchk_wxp_x86\i386’
WARNING: Inaccessible path: ‘C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objchk_wxp_x86\i386’
Symbol search path is: srv*c:\cache*http://msdl.microsoft.com/download/symbols;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objfre_win7_amd64\amd64;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objchk_wxp_x86\i386;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objfre_wxp_x86\i386;SRV\*c:\Symbols\*http://msdl.microsoft.com/download/symbols;symsrv\*symsrv.dll\*c:\symbols\*http://msdl.microsoft.com/download/symbols
Executable search path is: C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objfre_win7_amd64\amd64;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objchk_wxp_x86\i386;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objfre_wxp_x86\i386
Windows 7 Kernel Version 7600 MP (2 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 7600.16539.amd64fre.win7_gdr.100226-1909
Machine Name:
Kernel base = 0xfffff80002607000 PsLoadedModuleList = 0xfffff80002844e50
Debug session time: Thu Jul 1 12:05:46.578 2010 (GMT-4)
System Uptime: 0 days 0:07:06.609
Loading Kernel Symbols



Loading User Symbols
Loading unloaded module list

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

Use !analyze -v to get detailed debugging information.

BugCheck C9, {300, fffff88000e7019c, fffff9800fa8acf0, 226028}

Probably caused by : Wdf01000.sys ( Wdf01000!FxDevice::Dispatch+0 )

Followup: MachineOwner

0: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

DRIVER_VERIFIER_IOMANAGER_VIOLATION (c9)
The IO manager has caught a misbehaving driver.
Arguments:
Arg1: 0000000000000300, Code that specifies the violation
Arg2: fffff88000e7019c
Arg3: fffff9800fa8acf0
Arg4: 0000000000226028

Debugging Details:

BUGCHECK_STR: 0xc9_300

DRIVER_VERIFIER_IO_VIOLATION_TYPE: 300

FAULTING_IP:
Wdf01000!FxDevice::Dispatch+0
fffff880`00e7019c 4883ec28 sub rsp,28h

FOLLOWUP_IP:
Wdf01000!FxDevice::Dispatch+0
fffff880`00e7019c 4883ec28 sub rsp,28h

IRP_ADDRESS: fffff9800fa8acf0

DEVICE_OBJECT: fffffa8003b23520

CUSTOMER_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: VERIFIER_ENABLED_VISTA_MINIDUMP

PROCESS_NAME: devpathexer.ex

CURRENT_IRQL: 2

LAST_CONTROL_TRANSFER: from fffff80002b013dc to fffff80002677600

STACK_TEXT:
fffff880027a6198 fffff80002b013dc : 00000000000000c9 0000000000000300 fffff88000e7019c fffff9800fa8acf0 : nt!KeBugCheckEx
fffff880027a61a0 fffff80002b0b47a : fffff80002aff9f0 fffff88000e7019c fffff9800fa8acf0 0000000000226028 : nt!VerifierBugCheckIfAppropriate+0x3c
fffff880027a61e0 fffff80002b0c34e : 0000000000000300 0000000000226028 fffff9800fa8acf0 00000000fffffffa : nt!ViErrorFinishReport+0xda
fffff880027a6230 fffff80002b0cb82 : fffffa8004825420 0053002b002b0010 000002020018002b 0000000000000000 : nt!VfErrorReport6+0x6e
fffff880027a6300 fffff80002b01071 : fffffa80048253a8 0000000000000001 0000000000000000 fffff9800fa8af70 : nt!ViGenericVerifyIrpStackUpward+0xa2
fffff880027a6330 fffff80002b0db2d : fffffa8002e28600 fffffa8004825010 fffff9800fa8acf0 fffff9800fa8acf0 : nt!VfMajorVerifyIrpStackUpward+0x91
fffff880027a6370 fffff80002b1f50d : fffff9800fa8af70 fffff880027a6550 0000000000226028 fffff9800fa8af70 : nt!IovpCompleteRequest2+0xad
fffff880027a63e0 fffff80002679c26 : fffff9800fa8af73 fffff80000000000 0000000000000000 fffff88000000005 : nt!IovpLocalCompletionRoutine+0x9d
fffff880027a6440 fffff80002b1719f : fffff9800fa8acf0 fffffa8003b22800 0000000000000000 0000000000000000 : nt!IopfCompleteRequest+0x3a6
fffff880027a6520 fffff88000e6aa52 : 0000000000000000 fffffa8003b22800 0000000000000000 0000000000000001 : nt!IovCompleteRequest+0x19f
fffff880027a65f0 fffff88000e5b13e : fffff9800fa8acf0 fffffa8000000001 fffffa80032a7700 fffff9800fa8acf0 : Wdf01000!FxRequest::CompleteInternal+0x646
fffff880027a66a0 fffff88000e81f90 : fffffa80045f4700 fffffa80045f4770 fffffa80045f4770 0000057ffc4dd7f8 : Wdf01000!imp_WdfRequestCompleteWithInformation+0x1aa
fffff880027a6710 fffff88000e8199f : fffffa80045f4700 fffffa80045f4770 fffffa8003b22800 fffffa8003b22800 : Wdf01000!FxIoQueue::DispatchRequestToDriver+0x4b8
fffff880027a6790 fffff88000e80f98 : 0000000000000000 0000000000000000 0000000000000000 fffffa80045f48c2 : Wdf01000!FxIoQueue::DispatchEvents+0x4df
fffff880027a6800 fffff88000e86558 : fffff9800fa8af00 fffffa80045f4770 fffff9800fa8acf0 fffffa80045f4770 : Wdf01000!FxIoQueue::QueueRequest+0x2bc
fffff880027a6870 fffff88000e70245 : fffffa80045f4770 fffff9800fa8acf0 0000000000000002 fffffa8003b21380 : Wdf01000!FxPkgIo::Dispatch+0x37c
fffff880027a68f0 fffff80002b1dc16 : fffff9800fa8acf0 0000000000000002 fffff9800fa8acf0 fffff80002b1937e : Wdf01000!FxDevice::Dispatch+0xa9
fffff880027a6920 fffff80002b1cc42 : fffff9800fa8af70 0000000000000002 fffffa8003b23670 fffffa8002a189e0 : nt!IovCallDriver+0x566
fffff880027a6980 fffff80002b1dc16 : fffff9800fa8acf0 0000000000000002 fffffa8003b23520 fffffa800184a698 : nt!ViFilterDispatchPower+0x62
fffff880027a69b0 fffff800029936b7 : fffffa80041dd960 fffff880027a6ca0 fffffa80041dd960 fffffa8002357e40 : nt!IovCallDriver+0x566
fffff880027a6a10 fffff80002993f16 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : nt!IopXxxControlFile+0x607
fffff880027a6b40 fffff80002676853 : 0000000000222028 000000000022202b 0000000000000000 000000000287fc60 : nt!NtDeviceIoControlFile+0x56
fffff880027a6bb0 000000007747fdca : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : nt!KiSystemServiceCopyEnd+0x13
000000000287fcd8 0000000000000000 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : 0x7747fdca

STACK_COMMAND: .bugcheck ; kb

SYMBOL_NAME: Wdf01000!FxDevice::Dispatch+0

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: Wdf01000

IMAGE_NAME: Wdf01000.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 4a5bc19f

FAILURE_BUCKET_ID: X64_0xc9_300_VRF_Wdf01000!FxDevice::Dispatch+0

BUCKET_ID: X64_0xc9_300_VRF_Wdf01000!FxDevice::Dispatch+0

Followup: MachineOwner

0: kd> !devobj fffffa8003b23520 f
fffff80002827790: Unable to get value of ObpRootDirectoryObject
fffffa8003b23520: Could not read device object or _DEVICE_OBJECT not found
0: kd> lmvm Wdf01000
start end module name
fffff88000e39000 fffff88000edd000 Wdf01000 (pdb symbols) c:\cache\Wdf01000.pdb\99521C1B360441A9A1EAECC9E5087A251\Wdf01000.pdb
Loaded symbol image file: Wdf01000.sys
Mapped memory image file: c:\cache\Wdf01000.sys\4A5BC19Fa4000\Wdf01000.sys
Image path: \SystemRoot\system32\drivers\Wdf01000.sys
Image name: Wdf01000.sys
Timestamp: Mon Jul 13 19:22:07 2009 (4A5BC19F)
CheckSum: 000A2E74
ImageSize: 000A4000
File version: 1.9.7600.16385
Product version: 1.9.7600.16385
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 3.7 Driver
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: Microsoft Corporation
ProductName: Microsoft? Windows? Operating System
InternalName: wdf01000.sys
OriginalFilename: wdf01000.sys
ProductVersion: 1.9.7600.16385
FileVersion: 1.9.7600.16385 (win7_rtm.090713-1255)
FileDescription: Kernel Mode Driver Framework Runtime
LegalCopyright: ? Microsoft Corporation. All rights reserved.

Well, we can see it’s a Driver Verifier caught problem:
http://msdn.microsoft.com/en-us/library/ff560205(VS.85).aspx

The I/O error code 0x300 means “A driver has returned a suspicious status. This is probably due to an uninitialized variable bug in the driver.”

Did you dump the WDF Log (IFR… !WDFLOGDUMP)?

Peter
OSR

Hi Peter,

Thank you for telling me what error 0x300 means did not know where to look that up. Pardon my ignorance but How do I dump the WDF log ? typying this comand in wing debug said this:
0: kd> !WDFLOGDUMP
No export WDFLOGDUMP found

Also how do I confirm which driver caused this error ? How can I tell if it was mine or some other driver in the test PC

xxxxx@camtech.com wrote:

Thank you for telling me what error 0x300 means did not know where to look that up.

I didn’t either, and I’ve been around here a long time. I was going to
ask Peter where he found that.

Pardon my ignorance but How do I dump the WDF log ? typying this comand in wing debug said this:
0: kd> !WDFLOGDUMP
No export WDFLOGDUMP found

First, you have to load the WDF debugger extensions:
!load wdfkd

Then, you have to tell it where to find the TMF file that helps it parse
the logs:
!wdftmffile \winddk\7600\tools\tracing\amd64\wdf01009.tmf

Substitute your DDK directory path there. Note that I specified the
64-bit file (…\amd64.…) because that’s what your dump showed.

Now you can dump the log (also called the “in-flight recorder”). You
have to tell it the name of your driver, without the .sys extension:
!wdflogdump mydriver


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

I wish I could take credit for being some sort of genius or having a secret cache of bug check knowldge. But Google is my friend, that’s all:

bugcheck 0xc9 msdn

First result returned :slight_smile:

Happy 4th of July to everyone here in the States,

Peter
OSR

Hi Tim and Peter,

I followed your instructions and here is the WinDbg output:

0: kd> !load wdfkd
Unable to load image \SystemRoot\system32\mcupdate_AuthenticAMD.dll, Win32 error 0n2
*** WARNING: Unable to verify timestamp for mcupdate_AuthenticAMD.dll
*** ERROR: Module load completed but symbols could not be loaded for mcupdate_AuthenticAMD.dll
Unable to load image \SystemRoot\system32\DRIVERS\nvstor.sys, Win32 error 0n2
*** WARNING: Unable to verify timestamp for nvstor.sys
*** ERROR: Module load completed but symbols could not be loaded for nvstor.sys
*** WARNING: Unable to verify timestamp for amdxata.sys
*** ERROR: Module load completed but symbols could not be loaded for amdxata.sys
Unable to load image \SystemRoot\System32\Drivers\ksecpkg.sys, Win32 error 0n2
*** WARNING: Unable to verify timestamp for ksecpkg.sys
*** ERROR: Module load completed but symbols could not be loaded for ksecpkg.sys
Unable to load image \SystemRoot\System32\Drivers\spldr.sys, Win32 error 0n2
*** WARNING: Unable to verify timestamp for spldr.sys
*** ERROR: Module load completed but symbols could not be loaded for spldr.sys
Unable to load image \SystemRoot\system32\drivers\pnpfiltr.sys, Win32 error 0n2
*** WARNING: Unable to verify timestamp for pnpfiltr.sys
*** ERROR: Module load completed but symbols could not be loaded for pnpfiltr.sys
Unable to load image \SystemRoot\System32\DRIVERS\fvevol.sys, Win32 error 0n2
*** WARNING: Unable to verify timestamp for fvevol.sys
*** ERROR: Module load completed but symbols could not be loaded for fvevol.sys
Unable to load image \SystemRoot\system32\drivers\peauth.sys, Win32 error 0n2
*** WARNING: Unable to verify timestamp for peauth.sys
*** ERROR: Module load completed but symbols could not be loaded for peauth.sys
Unable to load image \SystemRoot\System32\Drivers\secdrv.SYS, Win32 error 0n2
*** WARNING: Unable to verify timestamp for secdrv.SYS
*** ERROR: Module load completed but symbols could not be loaded for secdrv.SYS
Unable to load image \SystemRoot\system32\DRIVERS\usbehci.sys, Win32 error 0n2
*** WARNING: Unable to verify timestamp for usbehci.sys
*** ERROR: Module load completed but symbols could not be loaded for usbehci.sys
*** WARNING: Unable to verify timestamp for usbhub.sys
*** ERROR: Module load completed but symbols could not be loaded for usbhub.sys
Unable to load image \SystemRoot\System32\Drivers\dump_nvstor.sys, Win32 error 0n2
*** WARNING: Unable to verify timestamp for dump_nvstor.sys
*** ERROR: Module load completed but symbols could not be loaded for dump_nvstor.sys
0: kd> !wdftmffile C:\WINDDK\7600.16385.0\tools\tracing\amd64\wdf01009.tmf
Set TMF file name is : ‘C:\WINDDK\7600.16385.0\tools\tracing\amd64\wdf01009.tmf’
0: kd> !wdflogdump CtiUsbLT2
Trace searchpath is:

Trace format prefix is: %7!u!: %!FUNC! -
TMF file used for formatting log is: C:\WINDDK\7600.16385.0\tools\tracing\amd64\wdf01009.tmf
hint: Are symbols available for this driver?
hint: Did you exclude the .sys extension in the drivername parameter?

Could not find CtiUsbLT2 in wdfldr client list

Question,
Should I be running WinDbg in the Test PC ? because I actually ran it on the Build machine instead where the driver and the DDK are located.
thanks/Jose

No, WinDbg is run on the host. The host is connected to the target via a
1394 cable (recommended) or serial cable.

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@camtech.com
Sent: Friday, July 02, 2010 1:42 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] BSOD during DevPathExer only under Win7 x64

Question,
Should I be running WinDbg in the Test PC ? because I actually ran it on the
Build machine instead where the driver and the DDK are located.
thanks/Jose


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

Oh, All I did was copy the Dump file out of the Test PC and into my Build PC where WinDbg and and the DDK and my driver source are installed. I did not have WinDbg remotely hook up to the Test PC.
but I could if need be.
Does this mean my analysis capture above of the dump file is not usefull ? I was hopping all the information I needed could be extracted from the dump file. Des the line below mean I am extracting the information incorrectly
“Could not find CtiUsbLT2 in wdfldr client list”

Maybe I missed something, but I don’t recall you mentioning a crash dump. If
it is a crash dump you are looking at, then yes you run WinDbg on the same
machine as the dump.

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@camtech.com
Sent: Friday, July 02, 2010 2:10 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] BSOD during DevPathExer only under Win7 x64

Oh, All I did was copy the Dump file out of the Test PC and into my Build PC
where WinDbg and and the DDK and my driver source are installed. I did not
have WinDbg remotely hook up to the Test PC.
but I could if need be.
Does this mean my analysis capture above of the dump file is not usefull ? I
was hopping all the information I needed could be extracted from the dump
file. Des the line below mean I am extracting the information incorrectly
“Could not find CtiUsbLT2 in wdfldr client list”


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

xxxxx@camtech.com wrote:

Oh, All I did was copy the Dump file out of the Test PC and into my Build PC where WinDbg and and the DDK and my driver source are installed. I did not have WinDbg remotely hook up to the Test PC.
but I could if need be.
Does this mean my analysis capture above of the dump file is not usefull ? I was hopping all the information I needed could be extracted from the dump file. Des the line below mean I am extracting the information incorrectly
“Could not find CtiUsbLT2 in wdfldr client list”

If you have a minidump, that’s not enough. You need a full kernel
memory dump. You set that in the system control panel under Startup and
Recovery.

Did you type “windbg -z memory.dmp”? When you turned on driver
verifier, did you enable it for ALL drivers? It’s not impossible that
you’re catching a violation in some other driver, although that does
seem unlikely.

Are you sure your driver is loaded? It’s true that your driver did not
appear in the stack traceback.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi Tim,

Apparently the O/S created both a miniDump and a full Kernel dump and I got the miniDump first.
This time I grabed the full Kernel Dump that was there and here it is below.
On these traces I never configured the Verifier (I just checked it now and it did not have any drivers configured so I assume that may be DTM turned it on automatically ???) in any case I could rerun the test w/ Verifier on to monitor my driver specifically. Or should I select ALL ?
Any ways here is the dump again from the Kernel Dump fle including the wdfkb cmd this time it has more info:

Microsoft (R) Windows Debugger Version 6.11.0001.404 X86
Copyright (c) Microsoft Corporation. All rights reserved.

Loading Dump File [F:\MEMORY.DMP]
Kernel Summary Dump File: Only kernel address space is available

WARNING: Inaccessible path: ‘C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objchk_wxp_x86\i386’
WARNING: Inaccessible path: ‘C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objchk_wxp_x86\i386’
Symbol search path is: srv*c:\cache*http://msdl.microsoft.com/download/symbols;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objfre_win7_amd64\amd64;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objchk_wxp_x86\i386;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objfre_wxp_x86\i386;SRV\*c:\Symbols\*http://msdl.microsoft.com/download/symbols;symsrv\*symsrv.dll\*c:\symbols\*http://msdl.microsoft.com/download/symbols
Executable search path is: C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objfre_win7_amd64\amd64;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objchk_wxp_x86\i386;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objfre_wxp_x86\i386
Windows 7 Kernel Version 7600 MP (2 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 7600.16539.amd64fre.win7_gdr.100226-1909
Machine Name:
Kernel base = 0xfffff80002607000 PsLoadedModuleList = 0xfffff80002844e50
Debug session time: Thu Jul 1 12:05:46.578 2010 (GMT-4)
System Uptime: 0 days 0:07:06.609
Loading Kernel Symbols



Loading User Symbols
PEB is paged out (Peb.Ldr = 000007ff`fffd3018). Type “.hh dbgerr001” for details
Loading unloaded module list

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

Use !analyze -v to get detailed debugging information.

BugCheck C9, {300, fffff88000e7019c, fffff9800fa8acf0, 226028}

PEB is paged out (Peb.Ldr = 000007fffffd3018). Type ".hh dbgerr001" for details PEB is paged out (Peb.Ldr = 000007fffffd3018). Type “.hh dbgerr001” for details
Probably caused by : ntkrnlmp.exe

Followup: MachineOwner

0: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

DRIVER_VERIFIER_IOMANAGER_VIOLATION (c9)
The IO manager has caught a misbehaving driver.
Arguments:
Arg1: 0000000000000300, Code that specifies the violation
Arg2: fffff88000e7019c
Arg3: fffff9800fa8acf0
Arg4: 0000000000226028

Debugging Details:

PEB is paged out (Peb.Ldr = 000007fffffd3018). Type ".hh dbgerr001" for details PEB is paged out (Peb.Ldr = 000007fffffd3018). Type “.hh dbgerr001” for details

BUGCHECK_STR: 0xc9_300

DRIVER_VERIFIER_IO_VIOLATION_TYPE: 300

FAULTING_IP:
Wdf01000!FxDevice::Dispatch+0
fffff880`00e7019c 4883ec28 sub rsp,28h

FOLLOWUP_IP:
Wdf01000!FxDevice::Dispatch+0
fffff880`00e7019c 4883ec28 sub rsp,28h

IRP_ADDRESS: fffff9800fa8acf0

DEVICE_OBJECT: fffffa8003b23520

DRIVER_OBJECT: fffffa8003b20c30

IMAGE_NAME: ntkrnlmp.exe

DEBUG_FLR_IMAGE_TIMESTAMP: 0

MODULE_NAME: ntkrnlmp

FAULTING_MODULE: 0000000000000000

DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT

PROCESS_NAME: devpathexer.ex

CURRENT_IRQL: 2

LAST_CONTROL_TRANSFER: from fffff80002b013dc to fffff80002677600

STACK_TEXT:
fffff880027a6198 fffff80002b013dc : 00000000000000c9 0000000000000300 fffff88000e7019c fffff9800fa8acf0 : nt!KeBugCheckEx
fffff880027a61a0 fffff80002b0b47a : fffff80002aff9f0 fffff88000e7019c fffff9800fa8acf0 0000000000226028 : nt!VerifierBugCheckIfAppropriate+0x3c
fffff880027a61e0 fffff80002b0c34e : 0000000000000300 0000000000226028 fffff9800fa8acf0 00000000fffffffa : nt!ViErrorFinishReport+0xda
fffff880027a6230 fffff80002b0cb82 : fffffa8004825420 0053002b002b0010 000002020018002b 0000000000000000 : nt!VfErrorReport6+0x6e
fffff880027a6300 fffff80002b01071 : fffffa80048253a8 0000000000000001 0000000000000000 fffff9800fa8af70 : nt!ViGenericVerifyIrpStackUpward+0xa2
fffff880027a6330 fffff80002b0db2d : fffffa8002e28600 fffffa8004825010 fffff9800fa8acf0 fffff9800fa8acf0 : nt!VfMajorVerifyIrpStackUpward+0x91
fffff880027a6370 fffff80002b1f50d : fffff9800fa8af70 fffff880027a6550 0000000000226028 fffff9800fa8af70 : nt!IovpCompleteRequest2+0xad
fffff880027a63e0 fffff80002679c26 : fffff9800fa8af73 fffff80000000000 0000000000000000 fffff88000000005 : nt!IovpLocalCompletionRoutine+0x9d
fffff880027a6440 fffff80002b1719f : fffff9800fa8acf0 fffffa8003b22800 0000000000000000 0000000000000000 : nt!IopfCompleteRequest+0x3a6
fffff880027a6520 fffff88000e6aa52 : 0000000000000000 fffffa8003b22800 0000000000000000 0000000000000001 : nt!IovCompleteRequest+0x19f
fffff880027a65f0 fffff88000e5b13e : fffff9800fa8acf0 fffffa8000000001 fffffa80032a7700 fffff9800fa8acf0 : Wdf01000!FxRequest::CompleteInternal+0x646
fffff880027a66a0 fffff88000e81f90 : fffffa80045f4700 fffffa80045f4770 fffffa80045f4770 0000057ffc4dd7f8 : Wdf01000!imp_WdfRequestCompleteWithInformation+0x1aa
fffff880027a6710 fffff88000e8199f : fffffa80045f4700 fffffa80045f4770 fffffa8003b22800 fffffa8003b22800 : Wdf01000!FxIoQueue::DispatchRequestToDriver+0x4b8
fffff880027a6790 fffff88000e80f98 : 0000000000000000 0000000000000000 0000000000000000 fffffa80045f48c2 : Wdf01000!FxIoQueue::DispatchEvents+0x4df
fffff880027a6800 fffff88000e86558 : fffff9800fa8af00 fffffa80045f4770 fffff9800fa8acf0 fffffa80045f4770 : Wdf01000!FxIoQueue::QueueRequest+0x2bc
fffff880027a6870 fffff88000e70245 : fffffa80045f4770 fffff9800fa8acf0 0000000000000002 fffffa8003b21380 : Wdf01000!FxPkgIo::Dispatch+0x37c
fffff880027a68f0 fffff80002b1dc16 : fffff9800fa8acf0 0000000000000002 fffff9800fa8acf0 fffff80002b1937e : Wdf01000!FxDevice::Dispatch+0xa9
fffff880027a6920 fffff80002b1cc42 : fffff9800fa8af70 0000000000000002 fffffa8003b23670 fffffa8002a189e0 : nt!IovCallDriver+0x566
fffff880027a6980 fffff80002b1dc16 : fffff9800fa8acf0 0000000000000002 fffffa8003b23520 fffffa800184a698 : nt!ViFilterDispatchPower+0x62
fffff880027a69b0 fffff800029936b7 : fffffa80041dd960 fffff880027a6ca0 fffffa80041dd960 fffffa8002357e40 : nt!IovCallDriver+0x566
fffff880027a6a10 fffff80002993f16 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : nt!IopXxxControlFile+0x607
fffff880027a6b40 fffff80002676853 : 0000000000222028 000000000022202b 0000000000000000 000000000287fc60 : nt!NtDeviceIoControlFile+0x56
fffff880027a6bb0 000000007747fdca : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : nt!KiSystemServiceCopyEnd+0x13
000000000287fcd8 0000000000000000 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : 0x7747fdca

STACK_COMMAND: kb

FOLLOWUP_NAME: MachineOwner

FAILURE_BUCKET_ID: X64_0xc9_300_VRF_IMAGE_ntkrnlmp.exe

BUCKET_ID: X64_0xc9_300_VRF_IMAGE_ntkrnlmp.exe

Followup: MachineOwner

0: kd> !load wdfkd
*** ERROR: Module load completed but symbols could not be loaded for spldr.sys
*** ERROR: Module load completed but symbols could not be loaded for pnpfiltr.sys
*** ERROR: Module load completed but symbols could not be loaded for peauth.sys
*** ERROR: Module load completed but symbols could not be loaded for secdrv.SYS
0: kd> !wdftmffile C:\WINDDK\7600.16385.0\tools\tracing\amd64\wdf01009.tmf
Set TMF file name is : ‘C:\WINDDK\7600.16385.0\tools\tracing\amd64\wdf01009.tmf’
0: kd> !wdflogdump CtiUsbLT2
Trace searchpath is:

Trace format prefix is: %7!u!: %!FUNC! -
TMF file used for formatting log is: C:\WINDDK\7600.16385.0\tools\tracing\amd64\wdf01009.tmf
Log at fffffa8003b1f000
Gather log: Please wait, this may take a moment (reading 4024 bytes).
% read so far … 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
There are 83 log entries
— start of log —
1675688: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675689: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675690: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FA70CF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675691: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FA6ACF0
1675692: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675693: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675694: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675695: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FA6ACF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675696: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FAC0CF0
1675697: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675698: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675699: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675700: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FAC0CF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675701: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FAA0CF0
1675702: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675703: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675704: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675705: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FAA0CF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675706: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FB92CF0
1675707: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675708: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675709: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675710: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FB92CF0 with Information 0x0, STATUS_SUCCESS
1675711: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FA6CCF0
1675712: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675713: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675714: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675715: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FA6CCF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675716: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FA84CF0
1675717: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675718: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675719: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675720: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FA84CF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675721: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FAAECF0
1675722: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675723: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675724: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675725: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FAAECF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675726: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FAB8CF0
1675727: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675728: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675729: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675730: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FAB8CF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675731: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FA9CCF0
1675732: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675733: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675734: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675735: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FA9CCF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675736: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FBC0CF0
1675737: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675738: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675739: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675740: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FBC0CF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675741: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FAACCF0
1675742: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675743: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675744: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675745: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FAACCF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675746: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FA94CF0
1675747: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675748: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675749: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675750: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FA94CF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675751: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FABACF0
1675752: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675753: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675754: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675755: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FABACF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675756: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FA56CF0
1675757: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675758: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675759: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675760: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FA56CF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675761: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FBD0CF0
1675762: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675763: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675764: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675765: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FBD0CF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675766: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FA8ACF0
1675767: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675768: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675769: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675770: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FA8ACF0 with Information 0x0, NTSTATUS= 226028
---- end of log ----

xxxxx@camtech.com wrote:

Hi Tim,

Apparently the O/S created both a miniDump and a full Kernel dump and I got the miniDump first.
This time I grabed the full Kernel Dump that was there and here it is below.
On these traces I never configured the Verifier (I just checked it now and it did not have any drivers configured so I assume that may be DTM turned it on automatically ???) in any case I could rerun the test w/ Verifier on to monitor my driver specifically. Or should I select ALL ?
Any ways here is the dump again from the Kernel Dump fle including the wdfkb cmd this time it has more info:

Yes, this seems pretty clear:

Microsoft (R) Windows Debugger Version 6.11.0001.404 X86
Copyright (c) Microsoft Corporation. All rights reserved.

Loading Dump File [F:\MEMORY.DMP]
Kernel Summary Dump File: Only kernel address space is available

WARNING: Inaccessible path: ‘C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objchk_wxp_x86\i386’
WARNING: Inaccessible path: ‘C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objchk_wxp_x86\i386’
Symbol search path is: srv*c:\cache*http://msdl.microsoft.com/download/symbols;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objfre_win7_amd64\amd64;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objchk_wxp_x86\i386;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objfre_wxp_x86\i386;SRV\*c:\Symbols\*http://msdl.microsoft.com/download/symbols;symsrv\*symsrv.dll\*c:\symbols\*http://msdl.microsoft.com/download/symbols
Executable search path is: C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objfre_win7_amd64\amd64;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objchk_wxp_x86\i386;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objfre_wxp_x86\i386

Notice here that your symbol and executable paths both have 32-bit paths
(objfre_wxp_x86\i386) instead of the 64-bit paths
(objfre_wlh_amd64\amd64). That’s not a problem here, but you’ll need to
fix this. Also, you have lots of duplicate entries in the symbols path.

DRIVER_VERIFIER_IOMANAGER_VIOLATION (c9)
The IO manager has caught a misbehaving driver.
Arguments:
Arg1: 0000000000000300, Code that specifies the violation
Arg2: fffff88000e7019c
Arg3: fffff9800fa8acf0
Arg4: 0000000000226028

So, we know you have an IRP (fa8acf0) that was completed with a bogus
status, 0x226028. Now, notice the end of the log:

1675762: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675763: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675764: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675765: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FBD0CF0 with Information 0x0, 0xc0000010(STATUS_INVALID_DEVICE_REQUEST)
1675766: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP 0xFFFFF9800FA8ACF0
1675767: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888 on WDFQUEUE 0x0000057FFC4DD7F8
1675768: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing WDFQUEUE 0x0000057FFC4DD7F8
1675769: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
1675770: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888 for IRP 0xFFFFF9800FA8ACF0 with Information 0x0, NTSTATUS= 226028
---- end of log ----

Sure enough, you called WdfRequestComplete with a status of 0x226028,
which is garbage, for IRP fa8acf0. That number seems much more like an
ioctl code. Perhaps you need to post your EvtIoDeviceControl handler.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

there is an IRP/WDFREQUEST that verifier was looking at when it crashed the
system,
did your driver touch (like, complete) that IRP by any chance? If it did, it
is your
KMDF callback for DeviceIoControl that was doing that.

!irp, !wdfrequest, etc might help.

As far as I understand for this king of bugcheck a driver won’t be on the
stack
unless a buggy completion has happened in a DPC.

wrote in message news:xxxxx@ntdev…
>
> IRP_ADDRESS: fffff9800fa8acf0
>
> DEVICE_OBJECT: fffffa8003b23520
>
> DRIVER_OBJECT: fffffa8003b20c30
>

this data in the log is also interesting. The status in completion is the
fourth parameter of the bugcheck.

> 1675766: FxPkgIo::Dispatch - WDFDEVICE 0x0000057FFC4DFA38 !devobj
> 0xFFFFFA8003B21380 0x0000000e(IRP_MJ_DEVICE_CONTROL), IRP_MN 0, IRP
> 0xFFFFF9800FA8ACF0
> 1675767: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0x0000057FFBA0B888
> on WDFQUEUE 0x0000057FFC4DD7F8
> 1675768: FxIoQueue::DispatchEvents - Thread FFFFFA8002EC5380 is processing
> WDFQUEUE 0x0000057FFC4DD7F8
> 1675769: FxIoQueue::DispatchRequestToDriver - Calling driver
> EvtIoDeviceControl for WDFREQUEST 0x0000057FFBA0B888
> 1675770: imp_WdfRequestComplete - Completing WDFREQUEST 0x0000057FFBA0B888
> for IRP 0xFFFFF9800FA8ACF0 with Information 0x0, NTSTATUS= 226028
> ---- end of log ----
>

Thank you Tim and Sergei,

For norrowing down this issue and helping me to use the MemoryDump w/ WinDbg.

not sure why these did not work:

0: kd> !irp
Free build - use !irpfind to scan memory for any active IRPs
0: kd> !irpfind
c0000006 Exception in kdexts.irpfind debugger extension.
PC: 000000000213e7a6 VA: 000000000162200c R/W: 0 Parameter: 00000000`c0000098
0: kd> !wdfrequest
Could not get WDFREQUEST handle

Guess I need to figure out which handler routine in my OsrFxEvtIoDeviceControl( ) is returning this bogus status. How do I know which IoControlCode value was passed in ?

I wonder why this was not caught when I DTM tested under Win7 x32 or XP and Vista x32 and x64 ?

///////////////////////////////////////////////////////////////////////////////////////////////////

VOID
OsrFxEvtIoDeviceControl(
__in WDFQUEUE Queue,
__in WDFREQUEST Request,
__in size_t OutputBufferLength,
__in size_t InputBufferLength,
__in ULONG IoControlCode
)
/*++

Routine Description:

This event is called when the framework receives IRP_MJ_DEVICE_CONTROL
requests from the system.

Arguments:

Queue - Handle to the framework queue object that is associated
with the I/O request.
Request - Handle to a framework request object.

OutputBufferLength - length of the request’s output buffer,
if an output buffer is available.
InputBufferLength - length of the request’s input buffer,
if an input buffer is available.

IoControlCode - the driver-defined or system-defined I/O control code
(IOCTL) that is associated with the request.
Return Value:

VOID

–*/
{
WDFDEVICE device;
PDEVICE_CONTEXT pDevContext;
size_t bytesReturned = 0;
BOOLEAN requestPending = FALSE;
NTSTATUS status = STATUS_INVALID_DEVICE_REQUEST;

UNREFERENCED_PARAMETER(InputBufferLength);
UNREFERENCED_PARAMETER(OutputBufferLength);

PAGED_CODE();

TraceEvents(TRACE_LEVEL_INFORMATION, DBG_IOCTL, “–> OsrFxEvtIoDeviceControl: io 0x%x outBuf %d inBuf %d\n”,
IoControlCode, OutputBufferLength, InputBufferLength);
//
// initialize variables
//
device = WdfIoQueueGetDevice(Queue);
pDevContext = GetDeviceContext(device);

switch(IoControlCode) {

case GSIUSBDRV_IOCTL_STORE_EVENTS:
status = GSIUSBDRV_IOCTL_STORE_EVENTS_Handler(pDevContext, Request, &bytesReturned);
break;

case GSIUSBDRV_IOCTL_REMOVE_EVENTS:
status = GSIUSBDRV_IOCTL_REMOVE_EVENTS_Handler(pDevContext, Request, &bytesReturned);
break;

case GSIUSBDRV_IOCTL_READ_STATUS:
status = GSIUSBDRV_IOCTL_READ_STATUS_Handler(pDevContext, Request, OutputBufferLength, &bytesReturned);
break;

case GSIUSBDRV_IOCTL_READ_CONTROL:
status = GSIUSBDRV_IOCTL_READ_CONTROL_Handler(pDevContext, Request, OutputBufferLength, &bytesReturned);
break;

case GSIUSBDRV_IOCTL_WRITE_CONTROL:
status = GSIUSBDRV_IOCTL_WRITE_CONTROL_Handler(pDevContext, Request, InputBufferLength, &bytesReturned);
break;

case GSIUSBDRV_IOCTL_DRV_INFO:
status = GSIUSBDRV_IOCTL_DRV_INFO_Handler(pDevContext, Request, &bytesReturned);
break;

case GSIUSBDRV_IOCTL_GET_DEVICE_DESCRIPTOR:
status = GSIUSBDRV_IOCTL_GET_DEVICE_DESCRIPTOR_Handler(pDevContext, Request, &bytesReturned);
break;

case GSIUSBDRV_IOCTL_GET_CONFIGURATION_DESCRIPTOR:
status = GSIUSBDRV_IOCTL_GET_CONFIGURATION_DESCRIPTORS_Handler(pDevContext, Request, &bytesReturned);
break;

case GSIUSBDRV_IOCTL_GET_INTERFACE_DESCRIPTOR:
status = GSIUSBDRV_IOCTL_GET_INTERFACE_DESCRIPTOR_Handler(pDevContext, Request, &bytesReturned);
break;

case GSIUSBDRV_IOCTL_GET_ENDPOINT_DESCRIPTOR:
status = GSIUSBDRV_IOCTL_GET_ENDPOINT_DESCRIPTOR_Handler(pDevContext, Request, &bytesReturned);
break;

case GSIUSBDRV_IOCTL_GET_STRING_DESCRIPTOR:
status = GSIUSBDRV_IOCTL_GET_STRING_DESCRIPTOR_Handler(pDevContext, Request, &bytesReturned);
break;

//////////////////////////////////

case IOCTL_GSIUSBLT2_GET_CONFIG_DESCRIPTOR:

TraceEvents(TRACE_LEVEL_INFORMATION, DBG_IOCTL, “shouldNotGetCalled IOCTL_GSIUSBLT2_GET_CONFIG_DESCRIPTOR.\n”);
status = GSIUSBDRV_IOCTL_GET_CONFIGURATION_DESCRIPTORS_Handler(pDevContext, Request, &bytesReturned);
break;

case IOCTL_GSIUSBLT2_RESET_DEVICE:

TraceEvents(TRACE_LEVEL_INFORMATION, DBG_IOCTL, “shouldNotGetCalled IOCTL_GSIUSBLT2_RESET_DEVICE.\n”);
status = ResetDevice(device);
break;

default :
TraceEvents(TRACE_LEVEL_INFORMATION, DBG_IOCTL, “<– IOCTL invalid.\n”);
status = STATUS_INVALID_DEVICE_REQUEST;
break;
}

if (requestPending == FALSE) {
WdfRequestCompleteWithInformation(Request, status, bytesReturned);
}

TraceEvents(TRACE_LEVEL_INFORMATION, DBG_IOCTL, “<– OsrFxEvtIoDeviceControl\n”);

return;
}

/////////////////////////////////////////////////////////////////////////////////////////////

#define IOCTL_INDEX 0x800
#define FILE_DEVICE_GSIUSBLT2 0x65500

#define IOCTL_GSIUSBLT2_GET_CONFIG_DESCRIPTOR CTL_CODE(FILE_DEVICE_GSIUSBLT2, IOCTL_INDEX,METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_GSIUSBLT2_RESET_DEVICE CTL_CODE(FILE_DEVICE_GSIUSBLT2, IOCTL_INDEX + 0x1, METHOD_BUFFERED, FILE_WRITE_ACCESS)

//#define IOCTL_PARAMETERIZED 1000
#define GSIUSBDRV_IOCTL_STORE_EVENTS CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_WRITE_DATA)
#define GSIUSBDRV_IOCTL_READ_STATUS CTL_CODE(FILE_DEVICE_UNKNOWN, 0x80A, METHOD_BUFFERED, FILE_READ_DATA)
#define GSIUSBDRV_IOCTL_READ_CONTROL CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801, METHOD_BUFFERED, FILE_READ_DATA)
#define GSIUSBDRV_IOCTL_WRITE_CONTROL CTL_CODE(FILE_DEVICE_UNKNOWN, 0x802, METHOD_BUFFERED, FILE_WRITE_DATA)
#define GSIUSBDRV_IOCTL_DRV_INFO CTL_CODE(FILE_DEVICE_UNKNOWN, 0x803, METHOD_BUFFERED, FILE_READ_DATA)

#define GSIUSBDRV_IOCTL_GET_DEVICE_DESCRIPTOR CTL_CODE(FILE_DEVICE_UNKNOWN, 0x804, METHOD_BUFFERED, FILE_READ_DATA)
#define GSIUSBDRV_IOCTL_GET_CONFIGURATION_DESCRIPTOR CTL_CODE(FILE_DEVICE_UNKNOWN, 0x805, METHOD_BUFFERED, FILE_READ_DATA)
#define GSIUSBDRV_IOCTL_GET_INTERFACE_DESCRIPTOR CTL_CODE(FILE_DEVICE_UNKNOWN, 0x806, METHOD_BUFFERED, FILE_READ_DATA)
#define GSIUSBDRV_IOCTL_GET_ENDPOINT_DESCRIPTOR CTL_CODE(FILE_DEVICE_UNKNOWN, 0x807, METHOD_BUFFERED, FILE_READ_DATA)
#define GSIUSBDRV_IOCTL_GET_STRING_DESCRIPTOR CTL_CODE(FILE_DEVICE_UNKNOWN, 0x808, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define GSIUSBDRV_IOCTL_REMOVE_EVENTS CTL_CODE(FILE_DEVICE_UNKNOWN, 0x809, METHOD_BUFFERED, FILE_WRITE_DATA)

we are venturing to a WinDbg topic…

!irp and !wdfrequest are debugger extensions. You can find documentation on
them in the debugger help – press F1 when you’re in main debugger window
and search. If you already know the name of the debugger extension (like in
this case), to open help on page specific to a certain command/extention,
type .hh , so:

.hh !irp

or

.hh !wdfrequest

!irp command expects an address of an _IRP structure as its parameter. You
know where your irp is from !analyze -v output (and from the log, too):

!irp fffff9800fa8acf0

will print the stack locations of the irp at fffff9800fa8acf0. You will
likely see your driver there.

same thing with !wdfrequest. Your WDFREQUEST was 0x0000057FFBA0B888

Yes, you probably need to determine which IOCTL was that. You already have
tracing implemented in your driver via TraceEvents call:

> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_IOCTL, “–>
> OsrFxEvtIoDeviceControl: io 0x%x outBuf %d inBuf %d\n”,
> IoControlCode, OutputBufferLength, InputBufferLength);

what does this guy correspond to? Make it print stuff, you will see which
IOCTL was that. It likely ends up in DbgPrintEx(); check out MSDN for
DbgPrintEx, there are some caveats that punt the debugger printout on Vista
and above.

OR you can examine the irp and/or WDF request and determine which IOCTL was
that (which is probably easier but not better from the learning curve
perspective).

Good luck!

-Sergei

wrote in message news:xxxxx@ntdev…
> Thank you Tim and Sergei,
>
> For norrowing down this issue and helping me to use the MemoryDump w/
> WinDbg.
>
> not sure why these did not work:
>
> 0: kd> !irp
> Free build - use !irpfind to scan memory for any active IRPs
> 0: kd> !irpfind
> c0000006 Exception in kdexts.irpfind debugger extension.
> PC: 000000000213e7a6 VA: 000000000162200c R/W: 0 Parameter:
> 00000000`c0000098
> 0: kd> !wdfrequest
> Could not get WDFREQUEST handle
>
>
>
> Guess I need to figure out which handler routine in my
> OsrFxEvtIoDeviceControl( ) is returning this bogus status. How do I know
> which IoControlCode value was passed in ?
>
> I wonder why this was not caught when I DTM tested under Win7 x32 or XP
> and Vista x32 and x64 ?
>
>
> ///////////////////////////////////////////////////////////////////////////////////////////////////
>
>
> VOID
> OsrFxEvtIoDeviceControl(
> in WDFQUEUE Queue,
>
in WDFREQUEST Request,
> in size_t OutputBufferLength,
>
in size_t InputBufferLength,
> __in ULONG IoControlCode
> )
> /++
>
> Routine Description:
>
> This event is called when the framework receives IRP_MJ_DEVICE_CONTROL
> requests from the system.
>
> Arguments:
>
> Queue - Handle to the framework queue object that is associated
> with the I/O request.
> Request - Handle to a framework request object.
>
> OutputBufferLength - length of the request’s output buffer,
> if an output buffer is available.
> InputBufferLength - length of the request’s input buffer,
> if an input buffer is available.
>
> IoControlCode - the driver-defined or system-defined I/O control code
> (IOCTL) that is associated with the request.
> Return Value:
>
> VOID
>
> –
/
> {
> WDFDEVICE device;
> PDEVICE_CONTEXT pDevContext;
> size_t bytesReturned = 0;
> BOOLEAN requestPending = FALSE;
> NTSTATUS status = STATUS_INVALID_DEVICE_REQUEST;
>
> UNREFERENCED_PARAMETER(InputBufferLength);
> UNREFERENCED_PARAMETER(OutputBufferLength);
>
> PAGED_CODE();
>
> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_IOCTL, “–>
> OsrFxEvtIoDeviceControl: io 0x%x outBuf %d inBuf %d\n”,
> IoControlCode, OutputBufferLength, InputBufferLength);
> //
> // initialize variables
> //
> device = WdfIoQueueGetDevice(Queue);
> pDevContext = GetDeviceContext(device);
>
> switch(IoControlCode) {
>
> case GSIUSBDRV_IOCTL_STORE_EVENTS:
> status = GSIUSBDRV_IOCTL_STORE_EVENTS_Handler(pDevContext, Request,
> &bytesReturned);
> break;
>
> case GSIUSBDRV_IOCTL_REMOVE_EVENTS:
> status = GSIUSBDRV_IOCTL_REMOVE_EVENTS_Handler(pDevContext, Request,
> &bytesReturned);
> break;
>
> case GSIUSBDRV_IOCTL_READ_STATUS:
> status = GSIUSBDRV_IOCTL_READ_STATUS_Handler(pDevContext, Request,
> OutputBufferLength, &bytesReturned);
> break;
>
> case GSIUSBDRV_IOCTL_READ_CONTROL:
> status = GSIUSBDRV_IOCTL_READ_CONTROL_Handler(pDevContext, Request,
> OutputBufferLength, &bytesReturned);
> break;
>
> case GSIUSBDRV_IOCTL_WRITE_CONTROL:
> status = GSIUSBDRV_IOCTL_WRITE_CONTROL_Handler(pDevContext, Request,
> InputBufferLength, &bytesReturned);
> break;
>
> case GSIUSBDRV_IOCTL_DRV_INFO:
> status = GSIUSBDRV_IOCTL_DRV_INFO_Handler(pDevContext, Request,
> &bytesReturned);
> break;
>
> case GSIUSBDRV_IOCTL_GET_DEVICE_DESCRIPTOR:
> status = GSIUSBDRV_IOCTL_GET_DEVICE_DESCRIPTOR_Handler(pDevContext,
> Request, &bytesReturned);
> break;
>
> case GSIUSBDRV_IOCTL_GET_CONFIGURATION_DESCRIPTOR:
> status =
> GSIUSBDRV_IOCTL_GET_CONFIGURATION_DESCRIPTORS_Handler(pDevContext,
> Request, &bytesReturned);
> break;
>
> case GSIUSBDRV_IOCTL_GET_INTERFACE_DESCRIPTOR:
> status = GSIUSBDRV_IOCTL_GET_INTERFACE_DESCRIPTOR_Handler(pDevContext,
> Request, &bytesReturned);
> break;
>
> case GSIUSBDRV_IOCTL_GET_ENDPOINT_DESCRIPTOR:
> status = GSIUSBDRV_IOCTL_GET_ENDPOINT_DESCRIPTOR_Handler(pDevContext,
> Request, &bytesReturned);
> break;
>
> case GSIUSBDRV_IOCTL_GET_STRING_DESCRIPTOR:
> status = GSIUSBDRV_IOCTL_GET_STRING_DESCRIPTOR_Handler(pDevContext,
> Request, &bytesReturned);
> break;
>
> //////////////////////////////////
>
> case IOCTL_GSIUSBLT2_GET_CONFIG_DESCRIPTOR:
>
> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_IOCTL, “shouldNotGetCalled
> IOCTL_GSIUSBLT2_GET_CONFIG_DESCRIPTOR.\n”);
> status =
> GSIUSBDRV_IOCTL_GET_CONFIGURATION_DESCRIPTORS_Handler(pDevContext,
> Request, &bytesReturned);
> break;
>
> case IOCTL_GSIUSBLT2_RESET_DEVICE:
>
> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_IOCTL, “shouldNotGetCalled
> IOCTL_GSIUSBLT2_RESET_DEVICE.\n”);
> status = ResetDevice(device);
> break;
>
> default :
> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_IOCTL, “<– IOCTL
> invalid.\n”);
> status = STATUS_INVALID_DEVICE_REQUEST;
> break;
> }
>
> if (requestPending == FALSE) {
> WdfRequestCompleteWithInformation(Request, status, bytesReturned);
> }
>
> TraceEvents(TRACE_LEVEL_INFORMATION, DBG_IOCTL, “<–
> OsrFxEvtIoDeviceControl\n”);
>
> return;
> }
>
>
>
> /////////////////////////////////////////////////////////////////////////////////////////////
>
> #define IOCTL_INDEX 0x800
> #define FILE_DEVICE_GSIUSBLT2 0x65500
>
> #define IOCTL_GSIUSBLT2_GET_CONFIG_DESCRIPTOR
> CTL_CODE(FILE_DEVICE_GSIUSBLT2, IOCTL_INDEX,METHOD_BUFFERED,
> FILE_READ_ACCESS)
> #define IOCTL_GSIUSBLT2_RESET_DEVICE CTL_CODE(FILE_DEVICE_GSIUSBLT2,
> IOCTL_INDEX + 0x1, METHOD_BUFFERED, FILE_WRITE_ACCESS)
>
> //#define IOCTL_PARAMETERIZED 1000
> #define GSIUSBDRV_IOCTL_STORE_EVENTS CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800,
> METHOD_BUFFERED, FILE_WRITE_DATA)
> #define GSIUSBDRV_IOCTL_READ_STATUS CTL_CODE(FILE_DEVICE_UNKNOWN, 0x80A,
> METHOD_BUFFERED, FILE_READ_DATA)
> #define GSIUSBDRV_IOCTL_READ_CONTROL CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801,
> METHOD_BUFFERED, FILE_READ_DATA)
> #define GSIUSBDRV_IOCTL_WRITE_CONTROL CTL_CODE(FILE_DEVICE_UNKNOWN, 0x802,
> METHOD_BUFFERED, FILE_WRITE_DATA)
> #define GSIUSBDRV_IOCTL_DRV_INFO CTL_CODE(FILE_DEVICE_UNKNOWN, 0x803,
> METHOD_BUFFERED, FILE_READ_DATA)
>
> #define GSIUSBDRV_IOCTL_GET_DEVICE_DESCRIPTOR
> CTL_CODE(FILE_DEVICE_UNKNOWN, 0x804, METHOD_BUFFERED, FILE_READ_DATA)
> #define GSIUSBDRV_IOCTL_GET_CONFIGURATION_DESCRIPTOR
> CTL_CODE(FILE_DEVICE_UNKNOWN, 0x805, METHOD_BUFFERED, FILE_READ_DATA)
> #define GSIUSBDRV_IOCTL_GET_INTERFACE_DESCRIPTOR
> CTL_CODE(FILE_DEVICE_UNKNOWN, 0x806, METHOD_BUFFERED, FILE_READ_DATA)
> #define GSIUSBDRV_IOCTL_GET_ENDPOINT_DESCRIPTOR
> CTL_CODE(FILE_DEVICE_UNKNOWN, 0x807, METHOD_BUFFERED, FILE_READ_DATA)
> #define GSIUSBDRV_IOCTL_GET_STRING_DESCRIPTOR
> CTL_CODE(FILE_DEVICE_UNKNOWN, 0x808, METHOD_BUFFERED, FILE_ANY_ACCESS)
>
> #define GSIUSBDRV_IOCTL_REMOVE_EVENTS CTL_CODE(FILE_DEVICE_UNKNOWN, 0x809,
> METHOD_BUFFERED, FILE_WRITE_DATA)
>
>

xxxxx@camtech.com wrote:

Thank you Tim and Sergei,

For norrowing down this issue and helping me to use the MemoryDump w/ WinDbg.

Guess I need to figure out which handler routine in my OsrFxEvtIoDeviceControl( ) is returning this bogus status. How do I know which IoControlCode value was passed in ?

Well, when you posted the original dump the invalid status was
0z226028. That happens to match your GSIUSBDRV_IOCTL_REMOVE_EVENTS, so
that’s where I’d start to look.

I wonder why this was not caught when I DTM tested under Win7 x32 or XP and Vista x32 and x64 ?

If it’s an uninitialized variable, as I suspect, you might have
accidentally returned a valid number.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi Tim & Sergei,

I looked at my code and did find a place where my driver could call WdfRequestCompleteWithInformation( ) with an uninitialized status variable and fixed it. So I rebuilt and re-test signed and reinstalled th driver but a rerun of the test still produces BSOD so I am trying to analyze the new Dump file. but unfortunately after I type “!load wdfkd” I am getting a mesage “Your debugger is not using the correct symbols” and I dont know why because my symbol path is pointing to where my new driver .pdb file is located. What am I doing wrong ?

Microsoft (R) Windows Debugger Version 6.11.0001.404 X86
Copyright (c) Microsoft Corporation. All rights reserved.

Loading Dump File [F:\MEMORY.DMP]
Kernel Summary Dump File: Only kernel address space is available

Symbol search path is: srv*c:\cache*http://msdl.microsoft.com/download/symbols;C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objfre_win7_amd64\amd64;SRV\*c:\Symbols\*http://msdl.microsoft.com/download/symbols;symsrv\*symsrv.dll\*c:\symbols\*http://msdl.microsoft.com/download/symbols
Executable search path is: C:\JOSEPROJECTS\GSI\USB_Drivers\GsiUsbLT2\objfre_win7_amd64\amd64
Windows 7 Kernel Version 7600 MP (2 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 7600.16539.amd64fre.win7_gdr.100226-1909
Machine Name:
Kernel base = 0xfffff8000260e000 PsLoadedModuleList = 0xfffff8000284be50
Debug session time: Tue Jul 6 17:00:49.593 2010 (GMT-4)
System Uptime: 0 days 0:07:05.625
Loading Kernel Symbols



Loading User Symbols
PEB is paged out (Peb.Ldr = 000007ff`fffd7018). Type “.hh dbgerr001” for details
Loading unloaded module list

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

Use !analyze -v to get detailed debugging information.

BugCheck C9, {300, fffff88000d8b19c, fffff9800f2cecf0, 226028}

PEB is paged out (Peb.Ldr = 000007fffffd7018). Type ".hh dbgerr001" for details PEB is paged out (Peb.Ldr = 000007fffffd7018). Type “.hh dbgerr001” for details
Probably caused by : ntkrnlmp.exe

Followup: MachineOwner

1: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

DRIVER_VERIFIER_IOMANAGER_VIOLATION (c9)
The IO manager has caught a misbehaving driver.
Arguments:
Arg1: 0000000000000300, Code that specifies the violation
Arg2: fffff88000d8b19c
Arg3: fffff9800f2cecf0
Arg4: 0000000000226028

Debugging Details:

PEB is paged out (Peb.Ldr = 000007fffffd7018). Type ".hh dbgerr001" for details PEB is paged out (Peb.Ldr = 000007fffffd7018). Type “.hh dbgerr001” for details

BUGCHECK_STR: 0xc9_300

DRIVER_VERIFIER_IO_VIOLATION_TYPE: 300

FAULTING_IP:
Wdf01000!FxDevice::Dispatch+0
fffff880`00d8b19c 4883ec28 sub rsp,28h

FOLLOWUP_IP:
Wdf01000!FxDevice::Dispatch+0
fffff880`00d8b19c 4883ec28 sub rsp,28h

IRP_ADDRESS: fffff9800f2cecf0

DEVICE_OBJECT: fffffa8003b01d00

DRIVER_OBJECT: fffffa8003afd710

IMAGE_NAME: ntkrnlmp.exe

DEBUG_FLR_IMAGE_TIMESTAMP: 0

MODULE_NAME: ntkrnlmp

FAULTING_MODULE: 0000000000000000

DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT

PROCESS_NAME: devpathexer.ex

CURRENT_IRQL: 2

LAST_CONTROL_TRANSFER: from fffff80002b083dc to fffff8000267e600

STACK_TEXT:
fffff88005e1b198 fffff80002b083dc : 00000000000000c9 0000000000000300 fffff88000d8b19c fffff9800f2cecf0 : nt!KeBugCheckEx
fffff88005e1b1a0 fffff80002b1247a : fffff80002b069f0 fffff88000d8b19c fffff9800f2cecf0 0000000000226028 : nt!VerifierBugCheckIfAppropriate+0x3c
fffff88005e1b1e0 fffff80002b1334e : 0000000000000300 0000000000226028 fffff9800f2cecf0 00000000fffffffa : nt!ViErrorFinishReport+0xda
fffff88005e1b230 fffff80002b13b82 : fffffa8003b02420 0053002b002b0010 000002020018002b 0000000000000000 : nt!VfErrorReport6+0x6e
fffff88005e1b300 fffff80002b08071 : fffffa8003b023a8 0000000000000001 0000000000000000 fffff9800f2cef70 : nt!ViGenericVerifyIrpStackUpward+0xa2
fffff88005e1b330 fffff80002b14b2d : fffffa8002e31a00 fffffa8003b02010 fffff9800f2cecf0 fffff9800f2cecf0 : nt!VfMajorVerifyIrpStackUpward+0x91
fffff88005e1b370 fffff80002b2650d : fffff9800f2cef70 fffff88005e1b550 0000000000226028 fffff9800f2cef70 : nt!IovpCompleteRequest2+0xad
fffff88005e1b3e0 fffff80002680c26 : fffff9800f2cef73 fffff80000000000 0000000000000000 fffff88000000005 : nt!IovpLocalCompletionRoutine+0x9d
fffff88005e1b440 fffff80002b1e19f : fffff9800f2cecf0 fffffa8003aff200 0000000000000000 0000000000000000 : nt!IopfCompleteRequest+0x3a6
fffff88005e1b520 fffff88000d85a52 : 0000000000000000 fffffa8003aff2f0 0000000000000000 0000000000000001 : nt!IovCompleteRequest+0x19f
fffff88005e1b5f0 fffff88000d7613e : fffff9800f2cecf0 fffffa8000000001 fffffa8003afa500 fffff9800f2cecf0 : Wdf01000!FxRequest::CompleteInternal+0x646
fffff88005e1b6a0 fffff88000d9cf90 : fffffa80041e0800 fffffa80041e0890 fffffa80041e0890 0000057ffc500d08 : Wdf01000!imp_WdfRequestCompleteWithInformation+0x1aa
fffff88005e1b710 fffff88000d9c99f : fffffa80041e0800 fffffa80041e0890 fffffa8003aff2f0 fffffa8003aff2f0 : Wdf01000!FxIoQueue::DispatchRequestToDriver+0x4b8
fffff88005e1b790 fffff88000d9bf98 : 0000000000000000 0000000000000000 0000000000000000 fffffa80041e09e2 : Wdf01000!FxIoQueue::DispatchEvents+0x4df
fffff88005e1b800 fffff88000da1558 : fffff9800f2cef00 fffffa80041e0890 fffff9800f2cecf0 fffffa80041e0890 : Wdf01000!FxIoQueue::QueueRequest+0x2bc
fffff88005e1b870 fffff88000d8b245 : fffffa80041e0890 fffff9800f2cecf0 0000000000000002 fffffa8003affe20 : Wdf01000!FxPkgIo::Dispatch+0x37c
fffff88005e1b8f0 fffff80002b24c16 : fffff9800f2cecf0 0000000000000002 fffff9800f2cecf0 fffff80002b2037e : Wdf01000!FxDevice::Dispatch+0xa9
fffff88005e1b920 fffff80002b23c42 : fffff9800f2cef70 0000000000000002 fffffa8003b01e50 fffffa80046b8660 : nt!IovCallDriver+0x566
fffff88005e1b980 fffff80002b24c16 : fffff9800f2cecf0 0000000000000002 fffffa8003b01d00 fffffa8001995418 : nt!ViFilterDispatchPower+0x62
fffff88005e1b9b0 fffff8000299a6b7 : fffffa80046a59f0 fffff88005e1bca0 fffffa80046a59f0 fffffa8002be57c0 : nt!IovCallDriver+0x566
fffff88005e1ba10 fffff8000299af16 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : nt!IopXxxControlFile+0x607
fffff88005e1bb40 fffff8000267d853 : 0000000000222028 000000000022202b 0000000000000000 00000000021df600 : nt!NtDeviceIoControlFile+0x56
fffff88005e1bbb0 0000000076f3fdca : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : nt!KiSystemServiceCopyEnd+0x13
00000000021df678 0000000000000000 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : 0x76f3fdca

STACK_COMMAND: kb

FOLLOWUP_NAME: MachineOwner

FAILURE_BUCKET_ID: X64_0xc9_300_VRF_IMAGE_ntkrnlmp.exe

BUCKET_ID: X64_0xc9_300_VRF_IMAGE_ntkrnlmp.exe

Followup: MachineOwner

1: kd> lmvm ntkrnlmp
start end module name
1: kd> !drvobj fffffa8003afd710 f
Driver object (fffffa8003afd710) is for:
\DRIVER\VERIFIER_FILTER
Driver Extension List: (id , addr)

Device Object list:
fffffa8003b0dc00 fffffa8003b0a040 fffffa8003b01d00 fffffa8003afb040

DriverEntry: fffff80002b11a10 nt!ViFilterDriverEntry
DriverStartIo: 00000000
DriverUnload: 00000000
AddDevice: fffff80002b073a0 nt!ViFilterAddDevice

Dispatch routines:
[00] IRP_MJ_CREATE fffff80002b23be0 nt!ViFilterDispatchPower
[01] IRP_MJ_CREATE_NAMED_PIPE fffff80002b23be0 nt!ViFilterDispatchPower
[02] IRP_MJ_CLOSE fffff80002b23be0 nt!ViFilterDispatchPower
[03] IRP_MJ_READ fffff80002b23be0 nt!ViFilterDispatchPower
[04] IRP_MJ_WRITE fffff80002b23be0 nt!ViFilterDispatchPower
[05] IRP_MJ_QUERY_INFORMATION fffff80002b23be0 nt!ViFilterDispatchPower
[06] IRP_MJ_SET_INFORMATION fffff80002b23be0 nt!ViFilterDispatchPower
[07] IRP_MJ_QUERY_EA fffff80002b23be0 nt!ViFilterDispatchPower
[08] IRP_MJ_SET_EA fffff80002b23be0 nt!ViFilterDispatchPower
[09] IRP_MJ_FLUSH_BUFFERS fffff80002b23be0 nt!ViFilterDispatchPower
[0a] IRP_MJ_QUERY_VOLUME_INFORMATION fffff80002b23be0 nt!ViFilterDispatchPower
[0b] IRP_MJ_SET_VOLUME_INFORMATION fffff80002b23be0 nt!ViFilterDispatchPower
[0c] IRP_MJ_DIRECTORY_CONTROL fffff80002b23be0 nt!ViFilterDispatchPower
[0d] IRP_MJ_FILE_SYSTEM_CONTROL fffff80002b23be0 nt!ViFilterDispatchPower
[0e] IRP_MJ_DEVICE_CONTROL fffff80002b23be0 nt!ViFilterDispatchPower
[0f] IRP_MJ_INTERNAL_DEVICE_CONTROL fffff80002b23be0 nt!ViFilterDispatchPower
[10] IRP_MJ_SHUTDOWN fffff80002b23be0 nt!ViFilterDispatchPower
[11] IRP_MJ_LOCK_CONTROL fffff80002b23be0 nt!ViFilterDispatchPower
[12] IRP_MJ_CLEANUP fffff80002b23be0 nt!ViFilterDispatchPower
[13] IRP_MJ_CREATE_MAILSLOT fffff80002b23be0 nt!ViFilterDispatchPower
[14] IRP_MJ_QUERY_SECURITY fffff80002b23be0 nt!ViFilterDispatchPower
[15] IRP_MJ_SET_SECURITY fffff80002b23be0 nt!ViFilterDispatchPower
[16] IRP_MJ_POWER fffff80002b23be0 nt!ViFilterDispatchPower
[17] IRP_MJ_SYSTEM_CONTROL fffff80002b23be0 nt!ViFilterDispatchPower
[18] IRP_MJ_DEVICE_CHANGE fffff80002b23be0 nt!ViFilterDispatchPower
[19] IRP_MJ_QUERY_QUOTA fffff80002b23be0 nt!ViFilterDispatchPower
[1a] IRP_MJ_SET_QUOTA fffff80002b23be0 nt!ViFilterDispatchPower
[1b] IRP_MJ_PNP fffff80002b273f0 nt!ViFilterDispatchPnp

1: kd> !drvobj fffffa8003afd710 f
Driver object (fffffa8003afd710) is for:
\DRIVER\VERIFIER_FILTER
Driver Extension List: (id , addr)

Device Object list:
fffffa8003b0dc00 fffffa8003b0a040 fffffa8003b01d00 fffffa8003afb040

DriverEntry: fffff80002b11a10 nt!ViFilterDriverEntry
DriverStartIo: 00000000
DriverUnload: 00000000
AddDevice: fffff80002b073a0 nt!ViFilterAddDevice

Dispatch routines:
[00] IRP_MJ_CREATE fffff80002b23be0 nt!ViFilterDispatchPower
[01] IRP_MJ_CREATE_NAMED_PIPE fffff80002b23be0 nt!ViFilterDispatchPower
[02] IRP_MJ_CLOSE fffff80002b23be0 nt!ViFilterDispatchPower
[03] IRP_MJ_READ fffff80002b23be0 nt!ViFilterDispatchPower
[04] IRP_MJ_WRITE fffff80002b23be0 nt!ViFilterDispatchPower
[05] IRP_MJ_QUERY_INFORMATION fffff80002b23be0 nt!ViFilterDispatchPower
[06] IRP_MJ_SET_INFORMATION fffff80002b23be0 nt!ViFilterDispatchPower
[07] IRP_MJ_QUERY_EA fffff80002b23be0 nt!ViFilterDispatchPower
[08] IRP_MJ_SET_EA fffff80002b23be0 nt!ViFilterDispatchPower
[09] IRP_MJ_FLUSH_BUFFERS fffff80002b23be0 nt!ViFilterDispatchPower
[0a] IRP_MJ_QUERY_VOLUME_INFORMATION fffff80002b23be0 nt!ViFilterDispatchPower
[0b] IRP_MJ_SET_VOLUME_INFORMATION fffff80002b23be0 nt!ViFilterDispatchPower
[0c] IRP_MJ_DIRECTORY_CONTROL fffff80002b23be0 nt!ViFilterDispatchPower
[0d] IRP_MJ_FILE_SYSTEM_CONTROL fffff80002b23be0 nt!ViFilterDispatchPower
[0e] IRP_MJ_DEVICE_CONTROL fffff80002b23be0 nt!ViFilterDispatchPower
[0f] IRP_MJ_INTERNAL_DEVICE_CONTROL fffff80002b23be0 nt!ViFilterDispatchPower
[10] IRP_MJ_SHUTDOWN fffff80002b23be0 nt!ViFilterDispatchPower
[11] IRP_MJ_LOCK_CONTROL fffff80002b23be0 nt!ViFilterDispatchPower
[12] IRP_MJ_CLEANUP fffff80002b23be0 nt!ViFilterDispatchPower
[13] IRP_MJ_CREATE_MAILSLOT fffff80002b23be0 nt!ViFilterDispatchPower
[14] IRP_MJ_QUERY_SECURITY fffff80002b23be0 nt!ViFilterDispatchPower
[15] IRP_MJ_SET_SECURITY fffff80002b23be0 nt!ViFilterDispatchPower
[16] IRP_MJ_POWER fffff80002b23be0 nt!ViFilterDispatchPower
[17] IRP_MJ_SYSTEM_CONTROL fffff80002b23be0 nt!ViFilterDispatchPower
[18] IRP_MJ_DEVICE_CHANGE fffff80002b23be0 nt!ViFilterDispatchPower
[19] IRP_MJ_QUERY_QUOTA fffff80002b23be0 nt!ViFilterDispatchPower
[1a] IRP_MJ_SET_QUOTA fffff80002b23be0 nt!ViFilterDispatchPower
[1b] IRP_MJ_PNP fffff80002b273f0 nt!ViFilterDispatchPnp

1: kd> !devobj fffffa8003b01d00 f
Device object (fffffa8003b01d00) is for:
\DRIVER\VERIFIER_FILTER DriverObject fffffa8003afd710
Current Irp 00000000 RefCount 0 Type 00000022 Flags 00002004
DevExt fffffa8003b01e50 DevObjExt fffffa8003b01e90
ExtensionFlags (0xc0000800) DOE_BOTTOM_OF_FDO_STACK, DOE_DESIGNATED_FDO
Unknown flags 0x00000800
AttachedTo (Lower) fffffa8003affe20 \Driver\CtiUsbLT2
Device queue is not busy.
1: kd> !load wdfkd
*************************************************************************
*** ***
*** ***
*** Your debugger is not using the correct symbols ***
*** ***
*** In order for this command to work properly, your symbol path ***
*** must point to .pdb files that have full type information. ***
*** ***
*** Certain .pdb files (such as the public OS symbols) do not ***
*** contain the required information. Contact the group that ***
*** provided you with these symbols if you need this command to ***
*** work. ***
*** ***
*** Type referenced: PVOID ***
*** ***
*************************************************************************
1: kd> !wdftmffile C:\WINDDK\7600.16385.0\tools\tracing\amd64\wdf01009.tmf
Set TMF file name is : ‘C:\WINDDK\7600.16385.0\tools\tracing\amd64\wdf01009.tmf’
1: kd> !wdflogdump CtiUsbLT2
Trace searchpath is:

Trace format prefix is: %7!u!: %!FUNC! -
TMF file used for formatting log is: C:\WINDDK\7600.16385.0\tools\tracing\amd64\wdf01009.tmf
Log at fffffa8003afc000
Gather log: Please wait, this may take a moment (reading 4024 bytes).
% read so far … 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
There are 82 log entries
— start of log —
1675424: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675425: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800f332cf0, STATUS_SUCCESS
1675426: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675427: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675428: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675429: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675430: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800f278cf0, STATUS_SUCCESS
1675431: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675432: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675433: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675434: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675435: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800f2d6cf0, STATUS_SUCCESS
1675436: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675437: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675438: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675439: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675440: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800f2a0cf0, STATUS_SUCCESS
1675441: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675442: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675443: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675444: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675445: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800f2cccf0, STATUS_SUCCESS
1675446: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675447: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675448: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675449: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675450: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800eefecf0, STATUS_SUCCESS
1675451: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675452: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675453: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675454: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675455: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800f2dacf0, STATUS_SUCCESS
1675456: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675457: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675458: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675459: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675460: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800f2c0cf0, STATUS_SUCCESS
1675461: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675462: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675463: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675464: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675465: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800f344cf0, STATUS_SUCCESS
1675466: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675467: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675468: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675469: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675470: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800ef5acf0, STATUS_SUCCESS
1675471: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675472: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675473: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675474: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675475: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800f29ccf0, STATUS_SUCCESS
1675476: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675477: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675478: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675479: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675480: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800f2f2cf0, STATUS_SUCCESS
1675481: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675482: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675483: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675484: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675485: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800f2becf0, STATUS_SUCCESS
1675486: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675487: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675488: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675489: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675490: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800f2decf0, STATUS_SUCCESS
1675491: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675492: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675493: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675494: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675495: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800f340cf0, STATUS_SUCCESS
1675496: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675497: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675498: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675499: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675500: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800f300cf0, STATUS_SUCCESS
1675501: FxPkgIo::Dispatch - WDFDEVICE 0xFC5043A8 !devobj 0x0000057F !0x20!, IRP_MN 8003affe, IRP 0x0EFFFFFA
1675502: FxIoQueue::QueueRequest - Queuing WDFREQUEST 0xFBE1F768 on WDFQUEUE 0x0000057F
1675503: FxIoQueue::DispatchEvents - Thread 0232F060 is processing WDFQUEUE 0xFFFFFA80
1675504: FxIoQueue::DispatchRequestToDriver - Calling driver EvtIoDeviceControl for WDFREQUEST 0xFBE1F768
1675505: imp_WdfRequestComplete - Completing WDFREQUEST 0xFBE1F768 for IRP 0x0000057F with Information 0xfffff9800f2cecf0, STATUS_SUCCESS
---- end of log ----

Hi Tim,

Sorry I just read your response after I send the previous one. The IOCTL were I made the fix was in a different one but the IOCTL handler you mention does not do anything its contents are comented out here it is

///////////////////////////////////////////////////////////////////////////////////////////////////
// GSIUSBDRV_IOCTL_REMOVE_EVENTS_Handler
//
// Routine Description:
// Handler for IO Control Code GSIUSBDRV_IOCTL_REMOVE_EVENTS
//
// Parameters:
// I - IRP containing IOCTL request
//
// Return Value:
// NTSTATUS - Status code indicating success or failure
//
// Comments:
// This routine implements the GSIUSBDRV_IOCTL_REMOVE_EVENTS function.
// This routine runs at passive level.
//

__drv_requiresIRQL(PASSIVE_LEVEL)
NTSTATUS GSIUSBDRV_IOCTL_REMOVE_EVENTS_Handler(
PDEVICE_CONTEXT pDevContext,
__in WDFREQUEST Request,
__out size_t* pbytesReturned
)
{
NTSTATUS status = STATUS_SUCCESS;
*pbytesReturned = 0;

TraceEvents(TRACE_LEVEL_ERROR, DBG_IOCTL,"Entering GSIUSBDRV_IOCTL_REMOVE_EVENTS_Handler, ");

/*****
// TODO: Verify that the input parameters are correct
// If not, return STATUS_INVALID_PARAMETER
PSTORE_EVENT_HANDLERS pEvents = (PSTORE_EVENT_HANDLERS) I.BufferedWriteSource();

//KUstring uniStrWinMCL(“WinMCL Plus”, PagedPool);
KUstring uniStr(&(pEvents->cApplication[0]), PagedPool);
TraceEvents(TRACE_LEVEL_ERROR, DBG_IOCTL,"Event handlers are ", uniStr, " "
, (LONG) pEvents->hEvent0, " "
, (LONG) pEvents->hEvent1, " "
, (LONG) pEvents->hEvent2, " "
, (LONG) pEvents->hEvent3
);

if(uniStr.Match(uniStrWinMCL))
{
if(m_KevWinMCL.IsValid())
{
TraceEvents(TRACE_LEVEL_ERROR, DBG_IOCTL,“Remove the Event.\n”);
m_KevWinMCL.Invalidate();
}
}

// TODO: Assuming that the request was handled here. Set I.Information
// to indicate how much data to copy back to the user.
I.Information() = 0;
*****/

return status;
}