Here are a !analyze -v output on the dump file created when BSOD occoured:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Loading Dump File [C:\windows\Minidump\Mini072110-01.dmp]
Mini Kernel Dump File: Only registers and stack trace are available
Symbol search path is: C:\WinDDK\7600.16385.1\src\MyDrivers\mydriver\objchk_wxp_x86\i386;C:\windows\symbols\sys;C:\windows\symbols\dll;C:\windows\symbols\exe;
Executable search path is: C:\windows\system32\drivers
Unable to load image ntoskrnl.exe, Win32 error 0n2
*** WARNING: Unable to verify timestamp for ntoskrnl.exe
Windows XP Kernel Version 2600 (Service Pack 3) MP (2 procs) Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTS
Machine Name:
Kernel base = 0x804d7000 PsLoadedModuleList = 0x8055d720
Debug session time: Wed Jul 21 09:18:27.000 2010 (UTC + 2:00)
System Uptime: 0 days 17:42:54.657
Unable to load image ntoskrnl.exe, Win32 error 0n2
*** WARNING: Unable to verify timestamp for ntoskrnl.exe
Loading Kernel Symbols
…
…
Loading User Symbols
Loading unloaded module list
…
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck C9, {7, b94349ec, 89e76eb8, 0}
*** ERROR: Module load completed but symbols could not be loaded for wdf01000.sys
Probably caused by : mydriver.sys ( mydriver!WdfRequestCompleteWithInformation+1d )
Followup: MachineOwner
1: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
DRIVER_VERIFIER_IOMANAGER_VIOLATION (c9)
The IO manager has caught a misbehaving driver.
Arguments:
Arg1: 00000007, IRP passed to IoCompleteRequest still has cancel routine set
Arg2: b94349ec, the cancel routine pointer
Arg3: 89e76eb8, the IRP
Arg4: 00000000
Debugging Details:
BUGCHECK_STR: 0xc9_7
DRIVER_VERIFIER_IO_VIOLATION_TYPE: 7
IRP_CANCEL_ROUTINE:
USBPORT!USBPORT_CancelActiveTransferIrp+0
b94349ec 8bff mov edi,edi
FAULTING_IP:
USBPORT!USBPORT_CancelActiveTransferIrp+0
b94349ec 8bff mov edi,edi
FOLLOWUP_IP:
mydriver!WdfRequestCompleteWithInformation+1d [c:\winddk\7600.16385.1\inc\wdf\kmdf\1.9\wdfrequest.h @ 1038]
ba3b933d 5d pop ebp
IRP_ADDRESS: 89e76eb8
DEVICE_OBJECT: 88d68030
CUSTOMER_CRASH_COUNT: 1
DEFAULT_BUCKET_ID: DRIVER_FAULT
PROCESS_NAME: rundll32.exe
LAST_CONTROL_TRANSFER: from 8065885c to 804f9f43
STACK_TEXT:
a6b3166c 8065885c 000000c9 00000007 b94349ec nt!_woutput+0x414
a6b316e8 a69c5d6b 87feecd0 87fbd4d8 00000000 nt!HvpReadFileImageAndBuildMap+0x172
WARNING: Stack unwind information not available. Following frames may be wrong.
a6b31710 a69b8983 00000000 00000002 87feedbc wdf01000+0x22d6b
a6b31728 ba3b933d 00000000 87fbd4d8 00000000 wdf01000+0x15983
a6b31740 ba3bb647 78042b20 00000000 00000000 mydriver!WdfRequestCompleteWithInformation+0x1d [c:\winddk\7600.16385.1\inc\wdf\kmdf\1.9\wdfrequest.h @ 1038]
a6b31780 a69d2072 78011328 78042b20 00000000 mydriver!EvtIoDeviceControl+0x317 [c:\winddk\7600.16385.1\src\mydrivers\mydriver\ioctl.c @ 315]
a6b317a4 a69d33d0 78011328 78042b20 00000000 wdf01000+0x2f072
a6b317d4 a69d59ac 78042b20 87fbd4d8 87feecd0 wdf01000+0x303d0
a6b317f0 a69d6a36 87feec00 00000000 87f42eb0 wdf01000+0x329ac
a6b31810 a69d8824 87fbd4d8 87eb92d0 87f34f38 wdf01000+0x33a36
a6b31834 a69c7a3f 89e76eb8 a6b31874 804ef19f wdf01000+0x35824
a6b31840 804ef19f 87eb92d0 89e76eb8 806e6428 wdf01000+0x24a3f
a6b31874 80662b28 87f07be8 89233748 00000000 nt!MiFlushSectionInternal+0x256
a6b31888 804ef19f 87f07be8 89e76eb8 806e6428 nt!MiRemovePhysicalMemory+0x34c
a6b318bc ba38a4b2 00000001 87ff6760 00040000 nt!MiFlushSectionInternal+0x256
a6b318e4 ba38ac7a 87ff6760 00000001 87ff6888 Modem!SetDtr+0x4c
a6b31a1c ba38add4 87ff6760 8a002e90 87ff66a8 Modem!UniOpenStarter+0x4b4
a6b31a38 804ef19f 87ff66a8 8a002e90 806e6428 Modem!UniOpen+0x50
a6b31a6c 805831fa 87e38358 87f879ec a6b31c04 nt!MiFlushSectionInternal+0x256
a6b31b4c 805bf434 87e38370 00000000 87f87948 nt!SeQueryInformationToken+0x11e
a6b31bc4 805bb9c0 00000000 a6b31c04 00000040 nt!MiFindExportedRoutineByName+0x52
a6b31c18 80576033 00000000 00000000 00000001 nt!IopInitializeDCB+0x96
a6b31c94 805769aa 018f951c c0100080 018f94bc nt!SeAssignSecurity+0xa
a6b31cf0 805790b4 018f951c c0100080 018f94bc nt!SepDuplicateToken+0x22a
a6b31d30 8054163c 018f951c c0100080 018f94bc nt!SeAccessCheckByType+0x638
a6b31d64 7c90e514 badb0d00 018f9484 a72c9d98 nt!RtlIpv4StringToAddressExW+0xbd
a6b31d78 00000000 00000000 00000000 00000000 0x7c90e514
STACK_COMMAND: kb
FAULTING_SOURCE_CODE:
1034: ULONG_PTR Information
1035: )
1036: {
1037: ((PFN_WDFREQUESTCOMPLETEWITHINFORMATION) WdfFunctions[WdfRequestCompleteWithInformationTableIndex])(WdfDriverGlobals, Request, Status, Information);
1038: }
1039:
1040: //
1041: // WDF Function: WdfRequestGetParameters
1042: //
1043: typedef
SYMBOL_STACK_INDEX: 4
SYMBOL_NAME: mydriver!WdfRequestCompleteWithInformation+1d
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: mydriver
IMAGE_NAME: mydriver.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4c4693be
FAILURE_BUCKET_ID: 0xc9_7_mydriver!WdfRequestCompleteWithInformation+1d
BUCKET_ID: 0xc9_7_mydriver!WdfRequestCompleteWithInformation+1d
Followup: MachineOwner
1: kd> !devobj ffffffff88d68030 f
80562ed8: Unable to get value of ObpRootDirectoryObject
88d68030: Could not read device object or _DEVICE_OBJECT not found
1: kd> lmvm mydriver
start end module name
ba3b8000 ba3bc800 mydriver (private pdb symbols) c:\winddk\7600.16385.1\src\mydrivers\mydriver\objchk_wxp_x86\i386\mydriver.pdb
Loaded symbol image file: mydriver.sys
Mapped memory image file: C:\windows\system32\drivers\mydriver.sys
Image path: mydriver.sys
Image name: mydriver.sys
Timestamp: Wed Jul 21 08:29:18 2010 (4C4693BE)
CheckSum: 0001457C
ImageSize: 00004800
Translations: 0000.04b0 0000.04e4 0409.04b0 0409.04e4
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
First of all, anyone know where to find symbols for wdf01000.sys? I tried to download symbols from http://go.microsoft.com/fwlink/?LinkId=79331
but it didn’t help. I also googled it but I don’t find any helpfull information.
Second, my problem seems to be with the completion of the request (or do I missunderstand this too?)
If so, why can’t I use the WdfRequestCompleteWithInformation function in the completion callback, or is it something else making this error?