Help on the BSOD with WDF logo test - Final.

We have a WDF usb driver crashed when running the WDF logo test - Final. It seems the test failed the WdfIoTargetStart call and tried to remove the device and then it hit a breakpoint in wdf01000.sys.

Any help is very appreciated.

WDFT: Calling WdfIoTargetStart
WDFT: *** FI provider failing WdfIoTargetStart with status: 0xc0000001 (STATUS_UNSUCCESSFUL)
Break instruction exception - code 80000003 (first chance)
nt!DbgBreakPoint:
81850ed2 cc int 3
kd> !analyze -v
Connected to Windows Server 2008/Windows Vista 6002 x86 compatible target at (Wed Sep 8 11:14:25.090 2010 (UTC - 7:00)), ptr64 FALSE
Loading Kernel Symbols



Loading User Symbols

Loading unloaded module list

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

Unknown bugcheck code (0)
Unknown bugcheck description
Arguments:
Arg1: 00000000
Arg2: 00000000
Arg3: 00000000
Arg4: 00000000

Debugging Details:

ERROR: Could Not Find Target OS Version. Please Update GetFunctionForOSVer to include target OS Version

*** ERROR: Module load completed but symbols could not be loaded for mssmbios.sys

PROCESS_NAME: System

FAULTING_IP:
nt!DbgBreakPoint+0
81850ed2 cc int 3

EXCEPTION_RECORD: ffffffff – (.exr 0xffffffffffffffff)
ExceptionAddress: 81850ed2 (nt!DbgBreakPoint)
ExceptionCode: 80000003 (Break instruction exception)
ExceptionFlags: 00000000
NumberParameters: 3
Parameter[0]: 00000000
Parameter[1]: 837d6970
Parameter[2]: 00000000

ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION} Breakpoint A breakpoint has been reached.

EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments are invalid

EXCEPTION_PARAMETER1: 00000000

EXCEPTION_PARAMETER2: 837d6970

EXCEPTION_PARAMETER3: 00000000

DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT

BUGCHECK_STR: 0x0

CURRENT_IRQL: 2

LAST_CONTROL_TRANSFER: from 8054e97c to 81850ed2

STACK_TEXT:
90c567b4 8054e97c 00000005 90c567d4 90c567dc nt!DbgBreakPoint
90c567e4 8054c439 92dbaf08 80553ebf 92dbaf08 Wdf01000!FxIoTarget::Remove+0x2f
90c567ec 80553ebf 92dbaf08 92dbaf1c 80586f4f Wdf01000!FxIoTarget::Dispose+0x2d
90c567f8 80586f4f 8059f594 92dbaf08 92dbaf2c Wdf01000!FxUsbPipe::Dispose+0xb
90c5680c 80586b2c 00000005 dbaf0800 00000000 Wdf01000!FxObject::DisposeChildrenWorker+0x169
90c56828 80586c5e dbaf0800 00000000 92dbaf08 Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
90c5683c 80586dd7 dbaf0800 00000000 8379316c Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
90c5685c 80586f33 8059f594 83793158 8379317c Wdf01000!FxObject::PerformEarlyDispose+0x93
90c56870 80586b2c 00000005 79315800 00000000 Wdf01000!FxObject::DisposeChildrenWorker+0x14d
90c5688c 80586c5e 79315800 00000000 83793158 Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
90c568a0 80586dd7 79315800 00000000 8384b894 Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
90c568c0 80586f33 8059f594 8384b880 8384b8a4 Wdf01000!FxObject::PerformEarlyDispose+0x93
90c568d4 80586b2c 00000005 84b88000 00000000 Wdf01000!FxObject::DisposeChildrenWorker+0x14d
90c568f0 80586c5e 84b88000 00000000 8384b880 Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
90c56904 80586dd7 84b88000 00000000 83e4205c Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
90c56924 80586f33 8059f594 83e42048 00000000 Wdf01000!FxObject::PerformEarlyDispose+0x93
90c56938 80586b2c 00000005 83e42000 00000001 Wdf01000!FxObject::DisposeChildrenWorker+0x14d
90c56954 80586c5e 83e42000 00000001 83e42048 Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
90c56968 80586d36 83e42000 00000001 00000008 Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
90c56988 80570f42 90c569a8 80592891 83e42048 Wdf01000!FxObject::EarlyDispose+0xce
90c56990 80592891 83e42048 850e9d30 805918b6 Wdf01000!FxDeviceToMx::EarlyDispose+0xd
90c5699c 805918b6 80592a0a 90c569d0 80592484 Wdf01000!FxPkgPnp::PnpEventRemovedCommonCode+0x8c
90c569a0 80592a0a 90c569d0 80592484 850e9d30 Wdf01000!FxPkgFdo::PnpEventFdoRemovedOverload+0x5
90c569a8 80592484 850e9d30 850e9dd8 850e9d30 Wdf01000!FxPkgPnp::PnpEventFdoRemoved+0xd
90c569d0 80592db2 00000113 850e9dd8 850e9d30 Wdf01000!FxPkgPnp::PnpEnterNewState+0x104
90c569f4 8059347a 90c56a0c 00000000 850e9d30 Wdf01000!FxPkgPnp::PnpProcessEventInner+0x149
90c56a18 8058a68f 00000200 00000000 95f9e2e8 Wdf01000!FxPkgPnp::PnpProcessEvent+0x13e
90c56a44 8058be02 850e9d30 8369ca68 8369ca68 Wdf01000!FxPkgPnp::_PnpRemoveDevice+0x8b
90c56a64 80568a3f 8369ca68 90c56a8c 80568c63 Wdf01000!FxPkgPnp::Dispatch+0x207
90c56a70 80568c63 83772020 8369ca68 8369cb84 Wdf01000!FxDevice::Dispatch+0x7f
90c56a8c 818509c6 83772020 00000000 8369cba8 Wdf01000!FxDevice::DispatchWithLock+0x7b
90c56aa4 80591913 00000000 836a6b08 90c56b08 nt!IofCallDriver+0x63
90c56ab8 8058a6d6 90c56b08 854764f8 836a6b08 Wdf01000!FxPkgFdo::ProcessRemoveDeviceOverload+0x52
90c56ae0 8058be02 836a6b08 854764f8 8369ca68 Wdf01000!FxPkgPnp::_PnpRemoveDevice+0xd2
90c56b00 80568a3f 8369ca68 90c56b28 80568c63 Wdf01000!FxPkgPnp::Dispatch+0x207
90c56b0c 80568c63 838f0c58 8369ca68 8369cbb0 Wdf01000!FxDevice::Dispatch+0x7f
90c56b28 818509c6 838f0c58 00000000 90c56bcc Wdf01000!FxDevice::DispatchWithLock+0x7b
90c56b40 819baa1f 8516b6f0 8516b6f0 84b83008 nt!IofCallDriver+0x63
90c56b74 81a84bf3 8516b6f0 90c56ba8 00000000 nt!IopSynchronousCall+0xce
90c56bd0 818d70fb 8516b6f0 00000002 9440f278 nt!IopRemoveDevice+0xd1
90c56bf8 81a7e137 909b0240 0000000a 00000000 nt!PnpRemoveLockedDeviceNode+0x176
90c56c10 81a7e3e7 00000002 0000000a 00000000 nt!PnpDeleteLockedDeviceNode+0x2b
90c56c44 81a821c8 8516b6f0 9440f278 00000002 nt!PnpDeleteLockedDeviceNodes+0x4c
90c56d04 81972993 90c56d34 00000000 90634490 nt!PnpProcessQueryRemoveAndEject+0x8cf
90c56d1c 8199e491 00000000 8190e13c 837d6970 nt!PnpProcessTargetDeviceEvent+0x38
90c56d44 818b1e22 9540d9b8 00000000 837d6970 nt!PnpDeviceEventWorker+0x201
90c56d7c 819e1c42 9540d9b8 a1a6eb85 00000000 nt!ExpWorkerThread+0xfd
90c56dc0 8184af4e 818b1d25 80000001 00000000 nt!PspSystemThreadStartup+0x9d
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16

STACK_COMMAND: kb

FOLLOWUP_IP:
Wdf01000!FxIoTarget::Remove+2f
8054e97c 8d45f0 lea eax,[ebp-10h]

SYMBOL_STACK_INDEX: 1

SYMBOL_NAME: Wdf01000!FxIoTarget::Remove+2f

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: Wdf01000

IMAGE_NAME: Wdf01000.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 4a5bbf28

FAILURE_BUCKET_ID: 0x0_Wdf01000!FxIoTarget::Remove+2f

BUCKET_ID: 0x0_Wdf01000!FxIoTarget::Remove+2f

Followup: MachineOwner

This is a breakpoint in the framework, you need to dump the in flight
recorder to get more details:

http://blogs.msdn.com/b/doronh/archive/2006/07/31/684531.aspx

-scott


Scott Noone
Consulting Associate
OSR Open Systems Resources, Inc.
http://www.osronline.com

wrote in message news:xxxxx@ntdev…
> We have a WDF usb driver crashed when running the WDF logo test - Final.
> It seems the test failed the WdfIoTargetStart call and tried to remove the
> device and then it hit a breakpoint in wdf01000.sys.
>
> Any help is very appreciated.
>
> WDFT: Calling WdfIoTargetStart
> WDFT: FI provider failing WdfIoTargetStart with status: 0xc0000001
> (STATUS_UNSUCCESSFUL)
> Break instruction exception - code 80000003 (first chance)
> nt!DbgBreakPoint:
> 81850ed2 cc int 3
> kd> !analyze -v
> Connected to Windows Server 2008/Windows Vista 6002 x86 compatible target
> at (Wed Sep 8 11:14:25.090 2010 (UTC - 7:00)), ptr64 FALSE
> Loading Kernel Symbols
> …
> …
> …
> Loading User Symbols
>
> Loading unloaded module list
> …
>
****************************************************************************
> *
> *
> * Bugcheck Analysis
> *
> *
> *
> ****************************************************************************
>
> Unknown bugcheck code (0)
> Unknown bugcheck description
> Arguments:
> Arg1: 00000000
> Arg2: 00000000
> Arg3: 00000000
> Arg4: 00000000
>
> Debugging Details:
> ------------------
>
>
> ERROR: Could Not Find Target OS Version. Please Update
> GetFunctionForOSVer to include target OS Version
>
>
ERROR: Module load completed but symbols could not be loaded for
> mssmbios.sys
>
> PROCESS_NAME: System
>
> FAULTING_IP:
> nt!DbgBreakPoint+0
> 81850ed2 cc int 3
>
> EXCEPTION_RECORD: ffffffff – (.exr 0xffffffffffffffff)
> ExceptionAddress: 81850ed2 (nt!DbgBreakPoint)
> ExceptionCode: 80000003 (Break instruction exception)
> ExceptionFlags: 00000000
> NumberParameters: 3
> Parameter[0]: 00000000
> Parameter[1]: 837d6970
> Parameter[2]: 00000000
>
> ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION} Breakpoint A breakpoint
> has been reached.
>
> EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments
> are invalid
>
> EXCEPTION_PARAMETER1: 00000000
>
> EXCEPTION_PARAMETER2: 837d6970
>
> EXCEPTION_PARAMETER3: 00000000
>
> DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT
>
> BUGCHECK_STR: 0x0
>
> CURRENT_IRQL: 2
>
> LAST_CONTROL_TRANSFER: from 8054e97c to 81850ed2
>
> STACK_TEXT:
> 90c567b4 8054e97c 00000005 90c567d4 90c567dc nt!DbgBreakPoint
> 90c567e4 8054c439 92dbaf08 80553ebf 92dbaf08
> Wdf01000!FxIoTarget::Remove+0x2f
> 90c567ec 80553ebf 92dbaf08 92dbaf1c 80586f4f
> Wdf01000!FxIoTarget::Dispose+0x2d
> 90c567f8 80586f4f 8059f594 92dbaf08 92dbaf2c
> Wdf01000!FxUsbPipe::Dispose+0xb
> 90c5680c 80586b2c 00000005 dbaf0800 00000000
> Wdf01000!FxObject::DisposeChildrenWorker+0x169
> 90c56828 80586c5e dbaf0800 00000000 92dbaf08
> Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
> 90c5683c 80586dd7 dbaf0800 00000000 8379316c
> Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
> 90c5685c 80586f33 8059f594 83793158 8379317c
> Wdf01000!FxObject::PerformEarlyDispose+0x93
> 90c56870 80586b2c 00000005 79315800 00000000
> Wdf01000!FxObject::DisposeChildrenWorker+0x14d
> 90c5688c 80586c5e 79315800 00000000 83793158
> Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
> 90c568a0 80586dd7 79315800 00000000 8384b894
> Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
> 90c568c0 80586f33 8059f594 8384b880 8384b8a4
> Wdf01000!FxObject::PerformEarlyDispose+0x93
> 90c568d4 80586b2c 00000005 84b88000 00000000
> Wdf01000!FxObject::DisposeChildrenWorker+0x14d
> 90c568f0 80586c5e 84b88000 00000000 8384b880
> Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
> 90c56904 80586dd7 84b88000 00000000 83e4205c
> Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
> 90c56924 80586f33 8059f594 83e42048 00000000
> Wdf01000!FxObject::PerformEarlyDispose+0x93
> 90c56938 80586b2c 00000005 83e42000 00000001
> Wdf01000!FxObject::DisposeChildrenWorker+0x14d
> 90c56954 80586c5e 83e42000 00000001 83e42048
> Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
> 90c56968 80586d36 83e42000 00000001 00000008
> Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
> 90c56988 80570f42 90c569a8 80592891 83e42048
> Wdf01000!FxObject::EarlyDispose+0xce
> 90c56990 80592891 83e42048 850e9d30 805918b6
> Wdf01000!FxDeviceToMx::EarlyDispose+0xd
> 90c5699c 805918b6 80592a0a 90c569d0 80592484
> Wdf01000!FxPkgPnp::PnpEventRemovedCommonCode+0x8c
> 90c569a0 80592a0a 90c569d0 80592484 850e9d30
> Wdf01000!FxPkgFdo::PnpEventFdoRemovedOverload+0x5
> 90c569a8 80592484 850e9d30 850e9dd8 850e9d30
> Wdf01000!FxPkgPnp::PnpEventFdoRemoved+0xd
> 90c569d0 80592db2 00000113 850e9dd8 850e9d30
> Wdf01000!FxPkgPnp::PnpEnterNewState+0x104
> 90c569f4 8059347a 90c56a0c 00000000 850e9d30
> Wdf01000!FxPkgPnp::PnpProcessEventInner+0x149
> 90c56a18 8058a68f 00000200 00000000 95f9e2e8
> Wdf01000!FxPkgPnp::PnpProcessEvent+0x13e
> 90c56a44 8058be02 850e9d30 8369ca68 8369ca68
> Wdf01000!FxPkgPnp::_PnpRemoveDevice+0x8b
> 90c56a64 80568a3f 8369ca68 90c56a8c 80568c63
> Wdf01000!FxPkgPnp::Dispatch+0x207
> 90c56a70 80568c63 83772020 8369ca68 8369cb84
> Wdf01000!FxDevice::Dispatch+0x7f
> 90c56a8c 818509c6 83772020 00000000 8369cba8
> Wdf01000!FxDevice::DispatchWithLock+0x7b
> 90c56aa4 80591913 00000000 836a6b08 90c56b08 nt!IofCallDriver+0x63
> 90c56ab8 8058a6d6 90c56b08 854764f8 836a6b08
> Wdf01000!FxPkgFdo::ProcessRemoveDeviceOverload+0x52
> 90c56ae0 8058be02 836a6b08 854764f8 8369ca68
> Wdf01000!FxPkgPnp::_PnpRemoveDevice+0xd2
> 90c56b00 80568a3f 8369ca68 90c56b28 80568c63
> Wdf01000!FxPkgPnp::Dispatch+0x207
> 90c56b0c 80568c63 838f0c58 8369ca68 8369cbb0
> Wdf01000!FxDevice::Dispatch+0x7f
> 90c56b28 818509c6 838f0c58 00000000 90c56bcc
> Wdf01000!FxDevice::DispatchWithLock+0x7b
> 90c56b40 819baa1f 8516b6f0 8516b6f0 84b83008 nt!IofCallDriver+0x63
> 90c56b74 81a84bf3 8516b6f0 90c56ba8 00000000 nt!IopSynchronousCall+0xce
> 90c56bd0 818d70fb 8516b6f0 00000002 9440f278 nt!IopRemoveDevice+0xd1
> 90c56bf8 81a7e137 909b0240 0000000a 00000000
> nt!PnpRemoveLockedDeviceNode+0x176
> 90c56c10 81a7e3e7 00000002 0000000a 00000000
> nt!PnpDeleteLockedDeviceNode+0x2b
> 90c56c44 81a821c8 8516b6f0 9440f278 00000002
> nt!PnpDeleteLockedDeviceNodes+0x4c
> 90c56d04 81972993 90c56d34 00000000 90634490
> nt!PnpProcessQueryRemoveAndEject+0x8cf
> 90c56d1c 8199e491 00000000 8190e13c 837d6970
> nt!PnpProcessTargetDeviceEvent+0x38
> 90c56d44 818b1e22 9540d9b8 00000000 837d6970 nt!PnpDeviceEventWorker+0x201
> 90c56d7c 819e1c42 9540d9b8 a1a6eb85 00000000 nt!ExpWorkerThread+0xfd
> 90c56dc0 8184af4e 818b1d25 80000001 00000000
> nt!PspSystemThreadStartup+0x9d
> 00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16
>
>
> STACK_COMMAND: kb
>
> FOLLOWUP_IP:
> Wdf01000!FxIoTarget::Remove+2f
> 8054e97c 8d45f0 lea eax,[ebp-10h]
>
> SYMBOL_STACK_INDEX: 1
>
> SYMBOL_NAME: Wdf01000!FxIoTarget::Remove+2f
>
> FOLLOWUP_NAME: MachineOwner
>
> MODULE_NAME: Wdf01000
>
> IMAGE_NAME: Wdf01000.sys
>
> DEBUG_FLR_IMAGE_TIMESTAMP: 4a5bbf28
>
> FAILURE_BUCKET_ID: 0x0_Wdf01000!FxIoTarget::Remove+2f
>
> BUCKET_ID: 0x0_Wdf01000!FxIoTarget::Remove+2f
>
> Followup: MachineOwner
> ---------
>
>

Thanks Scott.

Here is the output for !wdflogdump.

There are 44 log entries
— start of log —
1: FxVerifierLock::InitializeLockOrder - Object Type 0x1036 does not have a lock order defined in fx\inc\FxVerifierLock.hpp
2: FxVerifierLock::InitializeLockOrder - Object Type 0x1036 does not have a lock order defined in fx\inc\FxVerifierLock.hpp
3: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering PnP State WdfDevStatePnpInit from WdfDevStatePnpObjectCreated
4: FxPkgPnp::Dispatch - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020, IRP_MJ_PNP, 0x00000007(IRP_MN_QUERY_DEVICE_RELATIONS) type TargetDeviceRelation IRP 0x83D3CE28
5: FxPkgPnp::Dispatch - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020, IRP_MJ_PNP, 0x00000000(IRP_MN_START_DEVICE) IRP 0x83D3CE28
6: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering PnP State WdfDevStatePnpInitStarting from WdfDevStatePnpInit
7: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering PnP State WdfDevStatePnpHardwareAvailable from WdfDevStatePnpInitStarting
8: FxVerifierLock::InitializeLockOrder - Object Type 0x1204 does not have a lock order defined in fx\inc\FxVerifierLock.hpp
9: FxVerifierLock::InitializeLockOrder - Object Type 0x1204 does not have a lock order defined in fx\inc\FxVerifierLock.hpp
10: FxVerifierLock::InitializeLockOrder - Object Type 0x1204 does not have a lock order defined in fx\inc\FxVerifierLock.hpp
11: FxVerifierLock::InitializeLockOrder - Object Type 0x1204 does not have a lock order defined in fx\inc\FxVerifierLock.hpp
12: FxVerifierLock::InitializeLockOrder - Object Type 0x1204 does not have a lock order defined in fx\inc\FxVerifierLock.hpp
13: FxIoTarget::SubmitLocked - ignoring WDFIOTARGET 7C7B4778 state, sending WDFREQUEST 98D083A8, state WdfIoTargetStarted
14: FxIoTarget::SubmitLocked - ignoring WDFIOTARGET 7C7B4778 state, sending WDFREQUEST 98D083A8, state WdfIoTargetStarted
15: FxIoTarget::SubmitLocked - ignoring WDFIOTARGET 7C7B4778 state, sending WDFREQUEST 98D083A8, state WdfIoTargetStarted
16: FxIoTarget::SubmitLocked - ignoring WDFIOTARGET 7C7B4778 state, sending WDFREQUEST 98D083A8, state WdfIoTargetStarted
17: FxIoTarget::SubmitLocked - ignoring WDFIOTARGET 7C7B4778 state, sending WDFREQUEST 98D083A8, state WdfIoTargetStarted
18: imp_WdfRegistryQueryULong - WDFKEY 7C978E88, QueryULong, 0xc0000034(STATUS_OBJECT_NAME_NOT_FOUND)
19: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering power policy state WdfDevStatePwrPolStarting from WdfDevStatePwrPolObjectCreated
20: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering power idle state FxIdleStarted from FxIdleStopped
21: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering Power State WdfDevStatePowerStartingCheckDeviceType from WdfDevStatePowerObjectCreated
22: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering Power State WdfDevStatePowerD0Starting from WdfDevStatePowerStartingCheckDeviceType
23: FxPkgPnp::PowerD0Starting - EvtDeviceD0Entry WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020, old state WdfPowerDeviceD3Final failed, 0xc0000001(STATUS_UNSUCCESSFUL)
24: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering Power State WdfDevStatePowerInitialPowerUpFailedDerefParent from WdfDevStatePowerD0Starting
25: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering Power State WdfDevStatePowerInitialPowerUpFailed from WdfDevStatePowerInitialPowerUpFailedDerefParent
26: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering power idle state FxIdleStartedPowerFailed from FxIdleStarted
27: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering power idle state FxIdleStarted from FxIdleStartedPowerFailed
28: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering Power State WdfDevStatePowerStopped from WdfDevStatePowerInitialPowerUpFailed
29: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering power policy state WdfDevStatePwrPolStartingFailed from WdfDevStatePwrPolStarting
30: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering power idle state FxIdleStopped from FxIdleStarted
31: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering power policy state WdfDevStatePwrPolStopped from WdfDevStatePwrPolStartingFailed
32: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering PnP State WdfDevStatePnpHardwareAvailablePowerPolicyFailed from WdfDevStatePnpHardwareAvailable
33: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering PnP State WdfDevStatePnpFailedOwnHardware from WdfDevStatePnpHardwareAvailablePowerPolicyFailed
34: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering PnP State WdfDevStatePnpFailed from WdfDevStatePnpFailedOwnHardware
35: FxPkgIo::StopProcessingForPower - Perform FxIoStopProcessingForPowerPurgeManaged for all queues of WDFDEIVCE 0x7C1BDFB0
36: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering PnP State WdfDevStatePnpFailedWaitForRemove from WdfDevStatePnpFailed
37: FxPkgPnp::Dispatch - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020, IRP_MJ_PNP, 0x00000002(IRP_MN_REMOVE_DEVICE) IRP 0x8369CA68
38: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering PnP State WdfDevStatePnpRemoved from WdfDevStatePnpFailedWaitForRemove
39: FxChildList::NotifyDeviceRemove - WDFCHILDLIST 7C6A82D0: removing children
40: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering PnP State WdfDevStatePnpRemovedChildrenRemoved from WdfDevStatePnpRemoved
41: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x7C1BDFB0 !devobj 0x83772020 entering PnP State WdfDevStatePnpFdoRemoved from WdfDevStatePnpRemovedChildrenRemoved
42: FxPkgIo::StopProcessingForPower - Perform FxIoStopProcessingForPowerPurgeNonManaged for all queues of WDFDEIVCE 0x7C1BDFB0
43: FxIoTarget::WaitForDisposeEvent - WDFIOTARGET 7C8280C0, Waiting on Dispose event 90C5688C
44: FxUsbPipe::GotoRemoveState - WDFUSBPIPE 6D2450F0 was not stopped in EvtDeviceD0Exit callback

The last line seems suspecious to me. Was framework expecting our driver to stop the pipe? But framework have not called our EvtDeviceD0Exit routine yet!

It seems like WdfIoTargetStart, which is fault injected here, has been called from the EvtDeviceD0Entry callback, is that correct? Since EvtDeviceD0Exit isn’t getting called, I guess failure from WdfIoTargetStart caused EvtDeviceD0Entry to fail as well. If EvtDeviceD0Entry fails, EvtDeviceD0Exit doesn’t get called, I’d suggest cleaning up the I/O targets that are started from the EvtDeviceD0Entry in case this callback returns failure. Please let me know if it helps.

Thanks,
Neslihan

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@yahoo.com
Sent: Wednesday, September 08, 2010 12:09 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Help on the BSOD with WDF logo test - Final.

We have a WDF usb driver crashed when running the WDF logo test - Final. It seems the test failed the WdfIoTargetStart call and tried to remove the device and then it hit a breakpoint in wdf01000.sys.

Any help is very appreciated.

WDFT: Calling WdfIoTargetStart
WDFT: *** FI provider failing WdfIoTargetStart with status: 0xc0000001 (STATUS_UNSUCCESSFUL) Break instruction exception - code 80000003 (first chance)
nt!DbgBreakPoint:
81850ed2 cc int 3
kd> !analyze -v
Connected to Windows Server 2008/Windows Vista 6002 x86 compatible target at (Wed Sep 8 11:14:25.090 2010 (UTC - 7:00)), ptr64 FALSE Loading Kernel Symbols …


Loading User Symbols

Loading unloaded module list

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

Unknown bugcheck code (0)
Unknown bugcheck description
Arguments:
Arg1: 00000000
Arg2: 00000000
Arg3: 00000000
Arg4: 00000000

Debugging Details:

ERROR: Could Not Find Target OS Version. Please Update GetFunctionForOSVer to include target OS Version

*** ERROR: Module load completed but symbols could not be loaded for mssmbios.sys

PROCESS_NAME: System

FAULTING_IP:
nt!DbgBreakPoint+0
81850ed2 cc int 3

EXCEPTION_RECORD: ffffffff – (.exr 0xffffffffffffffff)
ExceptionAddress: 81850ed2 (nt!DbgBreakPoint)
ExceptionCode: 80000003 (Break instruction exception)
ExceptionFlags: 00000000
NumberParameters: 3
Parameter[0]: 00000000
Parameter[1]: 837d6970
Parameter[2]: 00000000

ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION} Breakpoint A breakpoint has been reached.

EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments are invalid

EXCEPTION_PARAMETER1: 00000000

EXCEPTION_PARAMETER2: 837d6970

EXCEPTION_PARAMETER3: 00000000

DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT

BUGCHECK_STR: 0x0

CURRENT_IRQL: 2

LAST_CONTROL_TRANSFER: from 8054e97c to 81850ed2

STACK_TEXT:
90c567b4 8054e97c 00000005 90c567d4 90c567dc nt!DbgBreakPoint
90c567e4 8054c439 92dbaf08 80553ebf 92dbaf08 Wdf01000!FxIoTarget::Remove+0x2f 90c567ec 80553ebf 92dbaf08 92dbaf1c 80586f4f Wdf01000!FxIoTarget::Dispose+0x2d
90c567f8 80586f4f 8059f594 92dbaf08 92dbaf2c Wdf01000!FxUsbPipe::Dispose+0xb 90c5680c 80586b2c 00000005 dbaf0800 00000000 Wdf01000!FxObject::DisposeChildrenWorker+0x169
90c56828 80586c5e dbaf0800 00000000 92dbaf08 Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
90c5683c 80586dd7 dbaf0800 00000000 8379316c Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
90c5685c 80586f33 8059f594 83793158 8379317c Wdf01000!FxObject::PerformEarlyDispose+0x93
90c56870 80586b2c 00000005 79315800 00000000 Wdf01000!FxObject::DisposeChildrenWorker+0x14d
90c5688c 80586c5e 79315800 00000000 83793158 Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
90c568a0 80586dd7 79315800 00000000 8384b894 Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
90c568c0 80586f33 8059f594 8384b880 8384b8a4 Wdf01000!FxObject::PerformEarlyDispose+0x93
90c568d4 80586b2c 00000005 84b88000 00000000 Wdf01000!FxObject::DisposeChildrenWorker+0x14d
90c568f0 80586c5e 84b88000 00000000 8384b880 Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
90c56904 80586dd7 84b88000 00000000 83e4205c Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
90c56924 80586f33 8059f594 83e42048 00000000 Wdf01000!FxObject::PerformEarlyDispose+0x93
90c56938 80586b2c 00000005 83e42000 00000001 Wdf01000!FxObject::DisposeChildrenWorker+0x14d
90c56954 80586c5e 83e42000 00000001 83e42048 Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
90c56968 80586d36 83e42000 00000001 00000008 Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
90c56988 80570f42 90c569a8 80592891 83e42048 Wdf01000!FxObject::EarlyDispose+0xce
90c56990 80592891 83e42048 850e9d30 805918b6 Wdf01000!FxDeviceToMx::EarlyDispose+0xd
90c5699c 805918b6 80592a0a 90c569d0 80592484 Wdf01000!FxPkgPnp::PnpEventRemovedCommonCode+0x8c
90c569a0 80592a0a 90c569d0 80592484 850e9d30 Wdf01000!FxPkgFdo::PnpEventFdoRemovedOverload+0x5
90c569a8 80592484 850e9d30 850e9dd8 850e9d30 Wdf01000!FxPkgPnp::PnpEventFdoRemoved+0xd
90c569d0 80592db2 00000113 850e9dd8 850e9d30 Wdf01000!FxPkgPnp::PnpEnterNewState+0x104
90c569f4 8059347a 90c56a0c 00000000 850e9d30 Wdf01000!FxPkgPnp::PnpProcessEventInner+0x149
90c56a18 8058a68f 00000200 00000000 95f9e2e8 Wdf01000!FxPkgPnp::PnpProcessEvent+0x13e
90c56a44 8058be02 850e9d30 8369ca68 8369ca68 Wdf01000!FxPkgPnp::_PnpRemoveDevice+0x8b
90c56a64 80568a3f 8369ca68 90c56a8c 80568c63 Wdf01000!FxPkgPnp::Dispatch+0x207
90c56a70 80568c63 83772020 8369ca68 8369cb84 Wdf01000!FxDevice::Dispatch+0x7f 90c56a8c 818509c6 83772020 00000000 8369cba8 Wdf01000!FxDevice::DispatchWithLock+0x7b
90c56aa4 80591913 00000000 836a6b08 90c56b08 nt!IofCallDriver+0x63
90c56ab8 8058a6d6 90c56b08 854764f8 836a6b08 Wdf01000!FxPkgFdo::ProcessRemoveDeviceOverload+0x52
90c56ae0 8058be02 836a6b08 854764f8 8369ca68 Wdf01000!FxPkgPnp::_PnpRemoveDevice+0xd2
90c56b00 80568a3f 8369ca68 90c56b28 80568c63 Wdf01000!FxPkgPnp::Dispatch+0x207 90c56b0c 80568c63 838f0c58 8369ca68 8369cbb0 Wdf01000!FxDevice::Dispatch+0x7f
90c56b28 818509c6 838f0c58 00000000 90c56bcc Wdf01000!FxDevice::DispatchWithLock+0x7b
90c56b40 819baa1f 8516b6f0 8516b6f0 84b83008 nt!IofCallDriver+0x63
90c56b74 81a84bf3 8516b6f0 90c56ba8 00000000 nt!IopSynchronousCall+0xce
90c56bd0 818d70fb 8516b6f0 00000002 9440f278 nt!IopRemoveDevice+0xd1
90c56bf8 81a7e137 909b0240 0000000a 00000000 nt!PnpRemoveLockedDeviceNode+0x176
90c56c10 81a7e3e7 00000002 0000000a 00000000 nt!PnpDeleteLockedDeviceNode+0x2b
90c56c44 81a821c8 8516b6f0 9440f278 00000002 nt!PnpDeleteLockedDeviceNodes+0x4c
90c56d04 81972993 90c56d34 00000000 90634490 nt!PnpProcessQueryRemoveAndEject+0x8cf
90c56d1c 8199e491 00000000 8190e13c 837d6970 nt!PnpProcessTargetDeviceEvent+0x38
90c56d44 818b1e22 9540d9b8 00000000 837d6970 nt!PnpDeviceEventWorker+0x201 90c56d7c 819e1c42 9540d9b8 a1a6eb85 00000000 nt!ExpWorkerThread+0xfd
90c56dc0 8184af4e 818b1d25 80000001 00000000 nt!PspSystemThreadStartup+0x9d
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16

STACK_COMMAND: kb

FOLLOWUP_IP:
Wdf01000!FxIoTarget::Remove+2f
8054e97c 8d45f0 lea eax,[ebp-10h]

SYMBOL_STACK_INDEX: 1

SYMBOL_NAME: Wdf01000!FxIoTarget::Remove+2f

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: Wdf01000

IMAGE_NAME: Wdf01000.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 4a5bbf28

FAILURE_BUCKET_ID: 0x0_Wdf01000!FxIoTarget::Remove+2f

BUCKET_ID: 0x0_Wdf01000!FxIoTarget::Remove+2f

Followup: MachineOwner


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 Neslihan,

You are right. WdfIoTargetStart was fault injected so finally EvtDeviceD0Entry failed. You are saying we should clean up I/O targets in this case, what we should do? Our driver calls WdfUsbTargetDeviceCreate in EvtDevicePrepareHardware, how to “remove” it?

Thanks,

Adam

I would suggest cleaning up in releasehw()

d

dent from a phpne with no keynoard

-----Original Message-----
From: xxxxx@yahoo.com
Sent: September 08, 2010 4:19 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Help on the BSOD with WDF logo test - Final.

Hi Neslihan,

You are right. WdfIoTargetStart was fault injected so finally EvtDeviceD0Entry failed. You are saying we should clean up I/O targets in this case, what we should do? Our driver calls WdfUsbTargetDeviceCreate in EvtDevicePrepareHardware, how to “remove” it?

Thanks,

Adam


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 Doron,

What should we clean up? We tried to deconfigure the USB, but it did not work. The BSOD still occurred.

Thanks,

Adam

Tried with the WDK sample driver \WinDDK\7600.16385.1\src\usb\osrusbfx2\kmdf\sys\final with OSR USB learning kit. System crashed at the same breakpoint in WDF framework. Could it be a framework issue or just the sample code?

Adam,

I’m having the exact same DTM error in my driver. Did you ever resolve this?

-Dave

In my case the test is passing when the target machine is connected to WinDbg via 1394. The breakpoint is hit as shown in this partial stack but if I just continue the BSOD doesn’t occur. Without the pause due to WinDbg (i.e. no 1394 connection) I get the BSOD. My driver calls “WdfIoTargetStart” in the “EvtDeviceD0Entry” callback also.

STACK_TEXT:
90c567b4 8054e97c 00000005 90c567d4 90c567dc nt!DbgBreakPoint
90c567e4 8054c439 92dbaf08 80553ebf 92dbaf08 Wdf01000!FxIoTarget::Remove+0x2f
90c567ec 80553ebf 92dbaf08 92dbaf1c 80586f4f Wdf01000!FxIoTarget::Dispose+0x2d
90c567f8 80586f4f 8059f594 92dbaf08 92dbaf2c Wdf01000!FxUsbPipe::Dispose+0xb

-David Voeller

I doubt that this is your problem, but just to be sure - are you getting a
breakpoint/assert WITHOUT windbg connected? If so, that will BSOD.

mm

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@hunter.com
Sent: Thursday, September 23, 2010 5:04 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Help on the BSOD with WDF logo test - Final.

In my case the test is passing when the target machine is connected to
WinDbg via 1394. The breakpoint is hit as shown in this partial stack but
if I just continue the BSOD doesn’t occur. Without the pause due to WinDbg
(i.e. no 1394 connection) I get the BSOD. My driver calls
“WdfIoTargetStart” in the “EvtDeviceD0Entry” callback also.

STACK_TEXT:
90c567b4 8054e97c 00000005 90c567d4 90c567dc nt!DbgBreakPoint
90c567e4 8054c439 92dbaf08 80553ebf 92dbaf08
Wdf01000!FxIoTarget::Remove+0x2f
90c567ec 80553ebf 92dbaf08 92dbaf1c 80586f4f
Wdf01000!FxIoTarget::Dispose+0x2d
90c567f8 80586f4f 8059f594 92dbaf08 92dbaf2c Wdf01000!FxUsbPipe::Dispose+0xb

-David Voeller


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

The call stack from the !analyze -v of the MEMORY.DMP file shows a breakpoint at the top of the stack (see below).

I’ve also enabled TraceViewer on the DTM client PC so see output from my driver. When I match the output of my driver to the sequential list of Fault Injections pulled from the DTM script wdftesterscript.wsf, the BSOD happens on the injection fault for the DDI WdfIoTargetStart.

My USB driver has 1 interrupt pipe that is started in the EvtDeviceD0Entry callback and it is started with the call DDI WdfIoTargetStart.

Everything seems to fit this same problem.

From MEMORY.DMP
STACK_TEXT:
8a72b800 833950bb 869754fc 869754e8 869754fc nt!DbgBreakPoint
8a72b818 8338f97c 00000005 8a72b838 8a72b840 Wdf01000!FxUsbPipe::GotoRemoveState+0x88
8a72b848 8338d439 869754e8 83394ebf 869754e8 Wdf01000!FxIoTarget::Remove+0x2f
8a72b850 83394ebf 869754e8 869754fc 833c7f4f Wdf01000!FxIoTarget::Dispose+0x2d
8a72b85c 833c7f4f 833e0594 869754e8 8697550c Wdf01000!FxUsbPipe::Dispose+0xb
8a72b870 833c7b2c 00000005 9754e800 00000000 Wdf01000!FxObject::DisposeChildrenWorker+0x169
8a72b88c 833c7c5e 9754e800 00000000 869754e8 Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
8a72b8a0 833c7dd7 9754e800 00000000 84d1d564 Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
8a72b8c0 833c7f33 833e0594 84d1d550 84d1d574 Wdf01000!FxObject::PerformEarlyDispose+0x93
8a72b8d4 833c7b2c 00000005 d1d55000 00000000 Wdf01000!FxObject::DisposeChildrenWorker+0x14d
8a72b8f0 833c7c5e d1d55000 00000000 84d1d550 Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
8a72b904 833c7dd7 d1d55000 00000000 867de514 Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
8a72b924 833c7f33 833e0594 867de500 867de524 Wdf01000!FxObject::PerformEarlyDispose+0x93
8a72b938 833c7b2c 00000005 7de50000 00000000 Wdf01000!FxObject::DisposeChildrenWorker+0x14d
8a72b954 833c7c5e 7de50000 00000000 867de500 Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
8a72b968 833c7dd7 7de50000 00000000 869ac6dc Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
8a72b988 833c7f33 833e0594 869ac6c8 00000000 Wdf01000!FxObject::PerformEarlyDispose+0x93
8a72b99c 833c7b2c 00000005 869ac600 00000001 Wdf01000!FxObject::DisposeChildrenWorker+0x14d
8a72b9b8 833c7c5e 869ac600 00000001 869ac6c8 Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
8a72b9cc 833c7d36 869ac600 00000001 00000008 Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
8a72b9ec 833b1f42 8a72ba0c 833d3891 869ac6c8 Wdf01000!FxObject::EarlyDispose+0xce
8a72b9f4 833d3891 869ac6c8 85932338 833d28b6 Wdf01000!FxDeviceToMx::EarlyDispose+0xd
8a72ba00 833d28b6 833d3a0a 8a72ba34 833d3484 Wdf01000!FxPkgPnp::PnpEventRemovedCommonCode+0x8c
8a72ba04 833d3a0a 8a72ba34 833d3484 85932338 Wdf01000!FxPkgFdo::PnpEventFdoRemovedOverload+0x5
8a72ba0c 833d3484 85932338 859323e0 85932338 Wdf01000!FxPkgPnp::PnpEventFdoRemoved+0xd
8a72ba34 833d3db2 00000113 859323e0 85932338 Wdf01000!FxPkgPnp::PnpEnterNewState+0x104
8a72ba58 833d447a 8a72ba70 00000000 85932338 Wdf01000!FxPkgPnp::PnpProcessEventInner+0x149
8a72ba7c 833cb68f 00000200 00000000 8695e3f8 Wdf01000!FxPkgPnp::PnpProcessEvent+0x13e
8a72baa8 833cce02 85932338 8673bb38 8673bb38 Wdf01000!FxPkgPnp::_PnpRemoveDevice+0x8b
8a72bac8 833a9a3f 8673bb38 8a72baf0 833a9c63 Wdf01000!FxPkgPnp::Dispatch+0x207
8a72bad4 833a9c63 86770bd0 8673bb38 8673bd10 Wdf01000!FxDevice::Dispatch+0x7f
8a72baf0 82c784bc 86770bd0 00000000 8a72bb8c Wdf01000!FxDevice::DispatchWithLock+0x7b
8a72bb08 82e18edf 8658c030 865656b8 8658c030 nt!IofCallDriver+0x63
8a72bb38 82defb3d 8658c030 00000000 865656b8 nt!IopSynchronousCall+0xc2
8a72bb90 82c50c3a 8658c030 00000002 94c6e830 nt!IopRemoveDevice+0xd4
8a72bbbc 82def951 0000000a 94c6e830 00000000 nt!PnpRemoveLockedDeviceNode+0x16c
8a72bbd0 82def8b7 00000002 0000000a 00000000 nt!PnpDeleteLockedDeviceNode+0x2d
8a72bc04 82def238 8658c030 94c6e830 00000002 nt!PnpDeleteLockedDeviceNodes+0x4c
8a72bcc4 82df1210 8a72bcf4 00000000 965e5db8 nt!PnpProcessQueryRemoveAndEject+0x946
8a72bcdc 82df2d58 00000000 86ac3b40 84c06a70 nt!PnpProcessTargetDeviceEvent+0x38
8a72bd00 82ca9f2b 86ac3b40 00000000 84c06a70 nt!PnpDeviceEventWorker+0x216
8a72bd50 82e4a66d 00000001 a8c5ae10 00000000 nt!ExpWorkerThread+0x10d
8a72bd90 82cfc0d9 82ca9e1e 00000001 00000000 nt!PspSystemThreadStartup+0x9e
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x19

From WDF Flight Recorder
0: kd> !load C:\WinDDK\7600.16385.1\bin\x86\wdfkd.dll
0: kd> !wdfkd.wdftmffile C:\WinDDK\7600.16385.1\tools\tracing\i386\wdf01009.tmf
Set TMF file name is : ‘C:\WinDDK\7600.16385.1\tools\tracing\i386\wdf01009.tmf’
0: kd> !wdfkd.wdflogdump hibusb.sys
Trace searchpath is:

Trace format prefix is: %7!u!: %!FUNC! -
TMF file used for formatting log is: C:\WinDDK\7600.16385.1\tools\tracing\i386\wdf01009.tmf
Log at 84d3e000
Gather log: Please wait, this may take a moment (reading 4032 bytes).
% read so far … 10, 20, 30, 100
There are 34 log entries
— start of log —
1: FxVerifierLock::InitializeLockOrder - Object Type 0x1036 does not have a lock order defined in fx\inc\FxVerifierLock.hpp
2: FxVerifierLock::InitializeLockOrder - Object Type 0x1036 does not have a lock order defined in fx\inc\FxVerifierLock.hpp
3: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering PnP State WdfDevStatePnpInit from WdfDevStatePnpObjectCreated
4: FxPkgPnp::Dispatch - WDFDEVICE 0x79653930 !devobj 0x86770BD0, IRP_MJ_PNP, 0x00000000(IRP_MN_START_DEVICE) IRP 0x8673BB38
5: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering PnP State WdfDevStatePnpInitStarting from WdfDevStatePnpInit
6: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering PnP State WdfDevStatePnpHardwareAvailable from WdfDevStatePnpInitStarting
7: FxVerifierLock::InitializeLockOrder - Object Type 0x1204 does not have a lock order defined in fx\inc\FxVerifierLock.hpp
8: FxIoTarget::SubmitLocked - ignoring WDFIOTARGET 79821AF8 state, sending WDFREQUEST 8A71F638, state WdfIoTargetStarted
9: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering power policy state WdfDevStatePwrPolStarting from WdfDevStatePwrPolObjectCreated
10: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering power idle state FxIdleStarted from FxIdleStopped
11: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering Power State WdfDevStatePowerStartingCheckDeviceType from WdfDevStatePowerObjectCreated
12: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering Power State WdfDevStatePowerD0Starting from WdfDevStatePowerStartingCheckDeviceType
13: FxPkgPnp::PowerD0Starting - EvtDeviceD0Entry WDFDEVICE 0x79653930 !devobj 0x86770BD0, old state WdfPowerDeviceD3Final failed, 0xc0000001(STATUS_UNSUCCESSFUL)
14: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering Power State WdfDevStatePowerInitialPowerUpFailedDerefParent from WdfDevStatePowerD0Starting
15: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering Power State WdfDevStatePowerInitialPowerUpFailed from WdfDevStatePowerInitialPowerUpFailedDerefParent
16: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering power idle state FxIdleStartedPowerFailed from FxIdleStarted
17: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering power idle state FxIdleStarted from FxIdleStartedPowerFailed
18: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering Power State WdfDevStatePowerStopped from WdfDevStatePowerInitialPowerUpFailed
19: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering power policy state WdfDevStatePwrPolStartingFailed from WdfDevStatePwrPolStarting
20: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering power idle state FxIdleStopped from FxIdleStarted
21: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering power policy state WdfDevStatePwrPolStopped from WdfDevStatePwrPolStartingFailed
22: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering PnP State WdfDevStatePnpHardwareAvailablePowerPolicyFailed from WdfDevStatePnpHardwareAvailable
23: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering PnP State WdfDevStatePnpFailedOwnHardware from WdfDevStatePnpHardwareAvailablePowerPolicyFailed
24: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering PnP State WdfDevStatePnpFailed from WdfDevStatePnpFailedOwnHardware
25: FxPkgIo::StopProcessingForPower - Perform FxIoStopProcessingForPowerPurgeManaged for all queues of WDFDEIVCE 0x79653930
26: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering PnP State WdfDevStatePnpFailedWaitForRemove from WdfDevStatePnpFailed
27: FxPkgPnp::Dispatch - WDFDEVICE 0x79653930 !devobj 0x86770BD0, IRP_MJ_PNP, 0x00000002(IRP_MN_REMOVE_DEVICE) IRP 0x8673BB38
28: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering PnP State WdfDevStatePnpRemoved from WdfDevStatePnpFailedWaitForRemove
29: FxChildList::NotifyDeviceRemove - WDFCHILDLIST 798227B0: removing children
30: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering PnP State WdfDevStatePnpRemovedChildrenRemoved from WdfDevStatePnpRemoved
31: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x79653930 !devobj 0x86770BD0 entering PnP State WdfDevStatePnpFdoRemoved from WdfDevStatePnpRemovedChildrenRemoved
32: FxPkgIo::StopProcessingForPower - Perform FxIoStopProcessingForPowerPurgeNonManaged for all queues of WDFDEIVCE 0x79653930
33: FxIoTarget::WaitForDisposeEvent - WDFIOTARGET 7A324178, Waiting on Dispose event 8A72B8F0
34: FxUsbPipe::GotoRemoveState - WDFUSBPIPE 7968AB10 was not stopped in EvtDeviceD0Exit callback
---- end of log ----

This is the BSOD call stack you (or at least I) can actually read.

nt!DbgBreakPoint
Wdf01000!FxUsbPipe::GotoRemoveState+0x88
Wdf01000!FxIoTarget::Remove+0x2f
Wdf01000!FxIoTarget::Dispose+0x2d
Wdf01000!FxUsbPipe::Dispose+0xb
Wdf01000!FxObject::DisposeChildrenWorker+0x169
Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
Wdf01000!FxObject::PerformEarlyDispose+0x93
Wdf01000!FxObject::DisposeChildrenWorker+0x14d
Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
Wdf01000!FxObject::PerformEarlyDispose+0x93
Wdf01000!FxObject::DisposeChildrenWorker+0x14d
Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
Wdf01000!FxObject::PerformEarlyDispose+0x93
Wdf01000!FxObject::DisposeChildrenWorker+0x14d
Wdf01000!FxObject::PerformDisposingDisposeChildrenLocked+0x78
Wdf01000!FxObject::PerformEarlyDisposeWorkerAndUnlock+0xa5
Wdf01000!FxObject::EarlyDispose+0xce
Wdf01000!FxDeviceToMx::EarlyDispose+0xd
Wdf01000!FxPkgPnp::PnpEventRemovedCommonCode+0x8c
Wdf01000!FxPkgFdo::PnpEventFdoRemovedOverload+0x5
Wdf01000!FxPkgPnp::PnpEventFdoRemoved+0xd
Wdf01000!FxPkgPnp::PnpEnterNewState+0x104
Wdf01000!FxPkgPnp::PnpProcessEventInner+0x149
Wdf01000!FxPkgPnp::PnpProcessEvent+0x13e
Wdf01000!FxPkgPnp::_PnpRemoveDevice+0x8b
Wdf01000!FxPkgPnp::Dispatch+0x207
Wdf01000!FxDevice::Dispatch+0x7f
Wdf01000!FxDevice::DispatchWithLock+0x7b
nt!IofCallDriver+0x63
nt!IopSynchronousCall+0xc2
nt!IopRemoveDevice+0xd4
nt!PnpRemoveLockedDeviceNode+0x16c
nt!PnpDeleteLockedDeviceNode+0x2d
nt!PnpDeleteLockedDeviceNodes+0x4c
nt!PnpProcessQueryRemoveAndEject+0x946
nt!PnpProcessTargetDeviceEvent+0x38
nt!PnpDeviceEventWorker+0x216
nt!ExpWorkerThread+0x10d
nt!PspSystemThreadStartup+0x9e
nt!KiThreadStartup+0x19

-David Voeller

BSOD on DTM FI for DDI WdfIoTargetStart

My target machine is Windows 7 so I changed the debug print filter such that it lets everything through to WinDbg. I know most of you know about this but just for reference to others, from Hector’s Memos (OSR) "Enable output of DbgPrint/KdPrint messages by default --Open the key “HKLM\SYSTEM\CCS\Control\Session Manager\Debug Print Filter”. Under this key, create a value with the name “DEFAULT” Set the value of this key equal to the DWORD value 8 to enable xxx_INFO_LEVEL output as well as xxx_ERROR_LEVEL output. Or try setting the mask to 0xF so you get all output. You must reboot for these changes to take effect.

After I did this to get all of the output sent to WinDbg from my driver (HibUsb) and the DTM (WDFT) I get the output below. I’ve been looking at this output and I’m still not seeing the problem. When WdfIoTargetStart in the EvtDeviceD0Entry callback the status is passed along as it should be.

HibUsb: –>HEEvtDeviceAdd()
HibUsb: This driver’s instance = 0
WDFT: Calling WdfDeviceInitSetPnpPowerEventCallbacks
WDFT: Calling WdfDeviceInitSetIoType
WDFT: Calling WdfDeviceInitSetFileObjectConfig
WDFT: HibUsb.sys calling WdfDeviceInitAssignName
WDFT: HibUsb.sys calling WdfDeviceCreate
WDFT: Calling WdfObjectGetTypedContextWorker
WDFT: Calling WdfDeviceSetPnpCapabilities
WDFT: Calling WdfIoQueueCreate
HibUsb: WdfIoQueueCreate created default Queue=0x797263F0
WDFT: Calling WdfIoQueueCreate
HibUsb: WdfIoQueueCreate created Interrupt Queue=0x794DECC8
WDFT: Calling WdfIoQueueCreate
HibUsb: WdfIoQueueCreate created ASR Queue=0x79507318
WDFT: HibUsb.sys calling WdfDeviceCreateDeviceInterface
WDFT: Calling WdfCollectionCreate
HibUsb: WdfCollectionCreate created collection object=0x79A22398
WDFT: Calling WdfSpinLockCreate
HibUsb: WdfSpinLockCreate created spinlock object=0x7979CF48
HibUsb: <–HEEvtDeviceAdd()
HibUsb: –>HEEvtDevicePrepareHardware()
WDFT: Calling WdfObjectGetTypedContextWorker
WDFT: HibUsb.sys calling WdfUsbTargetDeviceCreate
HibUsb: –>HESelectInterfaces()
WDFT: Calling WdfObjectGetTypedContextWorker
WDFT: HibUsb.sys calling WdfUsbTargetDeviceSelectConfig
WDFT: Calling WdfUsbInterfaceGetConfiguredPipe
WDFT: Calling WdfUsbTargetPipeSetNoMaximumPacketSizeCheck
WDFT: Calling WdfUsbTargetPipeIsInEndpoint
HibUsb: Interrupt In Pipe handle is 0x79507568, maximum packet size = 0x10 (16), maximum transfer size = 0x400000 (4194304), polling interval = 0x1 (1)
WDFT: Calling WdfUsbInterfaceGetConfiguredPipe
WDFT: Calling WdfUsbTargetPipeSetNoMaximumPacketSizeCheck
WDFT: Calling WdfUsbTargetPipeIsOutEndpoint
HibUsb: Bulk Out Pipe handle is 0x794999E8, maximum packet size = 0x40 (64), maximum transfer size = 0x400000 (4194304)
WDFT: Calling WdfUsbInterfaceGetConfiguredPipe
WDFT: Calling WdfUsbTargetPipeSetNoMaximumPacketSizeCheck
WDFT: Calling WdfUsbTargetPipeIsInEndpoint
HibUsb: Bulk In Pipe handle is 0x7943E978, maximum packet size = 0x40 (64), maximum transfer size = 0x400000 (4194304)
HibUsb: <–HESelectInterfaces()
WDFT: Calling WdfRequestCreate
WDFT: Calling WdfRequestCreate
WDFT: Calling WdfMemoryCreate
WDFT: Calling WdfMemoryCreate
WDFT: Calling WdfUsbTargetDeviceRetrieveInformation
HibUsb: IsDeviceHighSpeed: FALSE
HibUsb: IsDeviceSelfPowered: TRUE
WDFT: HibUsb.sys calling WdfUsbTargetDeviceGetDeviceDescriptor
WDFT: Calling WdfObjectGetTypedContextWorker
HibUsb: –>HEIOCTL_HIBUSB_INTPIPE_Initilize…Driver Instance=0
WDFT: Calling WdfUsbTargetPipeConfigContinuousReader
HibUsb: <–HEIOCTL_HIBUSB_INTPIPE_Initilize
HibUsb: <–HEEvtDevicePrepareHardware()
HibUsb: –>HEEvtDeviceD0Entry()…previous power state is WdfPowerDeviceD3Final
WDFT: Calling WdfObjectGetTypedContextWorker
WDFT: Calling WdfIoTargetStart
WDFT: *** FI provider failing WdfIoTargetStart with status: 0xc0000001 (STATUS_UNSUCCESSFUL)
WDFT: Wmi event fired for 171 in HibUsb.sys
HibUsb: <–HEEvtDeviceD0Entry() **Error** WdfIoTargetStart failed…return ntStatus=0xc0000001
HibUsb: <–HEEvtDeviceD0Entry()
HibUsb: –>HEEvtDeviceReleaseHardware()
WDFT: Calling WdfObjectGetTypedContextWorker
HibUsb: The driver instance 0 has been removed.
HibUsb: <–HEEvtDeviceReleaseHardware()
Break instruction exception - code 80000003 (first chance)

-David Voeller

Does anyone know if the power state of a USB pipe needs to be set somehow when the WdfIoTargetStart() for the USB pipe fails in the EvtDeviceD0Entry() callback?

In my case the USB driver gets the callback that the device is fully powered (EvtDeviceD0Entry) so it trys to start a USB interrupt pipe (WdfIoTargetStart). The DTM’s Fault Injection test fails the call to WdfIoTargetStart(). After exiting the driver the failing call stack leads me to believe there is a failure trying to change the USB interrupt pipe’s power state from D0 to maybe D3 so that it can be removed.

Wdf01000!FxUsbPipe::GotoRemoveState+0x88
Wdf01000!FxIoTarget::Remove+0x2f
Wdf01000!FxIoTarget::Dispose+0x2d
Wdf01000!FxUsbPipe::Dispose+0xb
:
:

Anyone have any ideas that I can try?

-David Voeller

I just took a look into this thread’s problem (hadn’t before because I thought it was already being handled).

I don’t believe you have anything to fix here. Unfortunately, our team’s logo interface is on vacation, so I haven’t got guidance in how you get an exception, or when this situation will change, but I’m certain an exception is justified in this case.

-----Original Message-----
Subject: RE:[ntdev] Help on the BSOD with WDF logo test - Final.

Does anyone know if the power state of a USB pipe needs to be set somehow when the WdfIoTargetStart() for the USB pipe fails in the EvtDeviceD0Entry() callback?

In my case the USB driver gets the callback that the device is fully powered (EvtDeviceD0Entry) so it trys to start a USB interrupt pipe (WdfIoTargetStart). The DTM’s Fault Injection test fails the call to WdfIoTargetStart(). After exiting the driver the failing call stack leads me to believe there is a failure trying to change the USB interrupt pipe’s power state from D0 to maybe D3 so that it can be removed.

Wdf01000!FxUsbPipe::GotoRemoveState+0x88
Wdf01000!FxIoTarget::Remove+0x2f
Wdf01000!FxIoTarget::Dispose+0x2d
Wdf01000!FxUsbPipe::Dispose+0xb
:
:

Anyone have any ideas that I can try?

-David Voeller

First, thank you for taking a look at this problem. I’ve been struggling with it for some time.

Just so that I’m clear, you think that my USB driver might be ok here?

Do I have to wait for something to happen from Microsoft before I can get my driver past the DTM?

-David Voeller

>>Just so that I’m clear, you think that my USB driver might be ok here?

I’m certain this particular case is not your bug.

> Do I have to wait for something to happen from Microsoft before I can get my driver past the DTM?

I’m pretty sure the answer is “No”, you submit your results and ask for an exception to that failure- BUT I can’t give you a precise answer- I’m sure someone else will, eventually, but my usual resources aren’t available to me, and I’m not going to delay answering to wait for resources to magically arrive. My apologies for this shortcoming of mine.

Hi David,

This issue will be fixed and WDF Logo Test failure would be cleared with an errata. Could you please open a support case for this? Do you have a TAM contact? If not you can open a support case from this link: https://support.microsoft.com/oas/default.aspx?&prid=11880&st=1&wfxredirect=1&sd=gn As your driver isn’t the cause of the problem, this support case would be free of charge.

Thank you,
Neslihan

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@hunter.com
Sent: Monday, September 27, 2010 7:48 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Help on the BSOD with WDF logo test - Final.

BSOD on DTM FI for DDI WdfIoTargetStart

My target machine is Windows 7 so I changed the debug print filter such that it lets everything through to WinDbg. I know most of you know about this but just for reference to others, from Hector’s Memos (OSR) "Enable output of DbgPrint/KdPrint messages by default --Open the key “HKLM\SYSTEM\CCS\Control\Session Manager\Debug Print Filter”. Under this key, create a value with the name “DEFAULT” Set the value of this key equal to the DWORD value 8 to enable xxx_INFO_LEVEL output as well as xxx_ERROR_LEVEL output. Or try setting the mask to 0xF so you get all output. You must reboot for these changes to take effect.

After I did this to get all of the output sent to WinDbg from my driver (HibUsb) and the DTM (WDFT) I get the output below. I’ve been looking at this output and I’m still not seeing the problem. When WdfIoTargetStart in the EvtDeviceD0Entry callback the status is passed along as it should be.

HibUsb: –>HEEvtDeviceAdd()
HibUsb: This driver’s instance = 0
WDFT: Calling WdfDeviceInitSetPnpPowerEventCallbacks
WDFT: Calling WdfDeviceInitSetIoType
WDFT: Calling WdfDeviceInitSetFileObjectConfig
WDFT: HibUsb.sys calling WdfDeviceInitAssignName
WDFT: HibUsb.sys calling WdfDeviceCreate
WDFT: Calling WdfObjectGetTypedContextWorker
WDFT: Calling WdfDeviceSetPnpCapabilities
WDFT: Calling WdfIoQueueCreate
HibUsb: WdfIoQueueCreate created default Queue=0x797263F0
WDFT: Calling WdfIoQueueCreate
HibUsb: WdfIoQueueCreate created Interrupt Queue=0x794DECC8
WDFT: Calling WdfIoQueueCreate
HibUsb: WdfIoQueueCreate created ASR Queue=0x79507318
WDFT: HibUsb.sys calling WdfDeviceCreateDeviceInterface
WDFT: Calling WdfCollectionCreate
HibUsb: WdfCollectionCreate created collection object=0x79A22398
WDFT: Calling WdfSpinLockCreate
HibUsb: WdfSpinLockCreate created spinlock object=0x7979CF48
HibUsb: <–HEEvtDeviceAdd()
HibUsb: –>HEEvtDevicePrepareHardware()
WDFT: Calling WdfObjectGetTypedContextWorker
WDFT: HibUsb.sys calling WdfUsbTargetDeviceCreate
HibUsb: –>HESelectInterfaces()
WDFT: Calling WdfObjectGetTypedContextWorker
WDFT: HibUsb.sys calling WdfUsbTargetDeviceSelectConfig
WDFT: Calling WdfUsbInterfaceGetConfiguredPipe
WDFT: Calling WdfUsbTargetPipeSetNoMaximumPacketSizeCheck
WDFT: Calling WdfUsbTargetPipeIsInEndpoint
HibUsb: Interrupt In Pipe handle is 0x79507568, maximum packet size = 0x10 (16), maximum transfer size = 0x400000 (4194304), polling interval = 0x1 (1)
WDFT: Calling WdfUsbInterfaceGetConfiguredPipe
WDFT: Calling WdfUsbTargetPipeSetNoMaximumPacketSizeCheck
WDFT: Calling WdfUsbTargetPipeIsOutEndpoint
HibUsb: Bulk Out Pipe handle is 0x794999E8, maximum packet size = 0x40 (64), maximum transfer size = 0x400000 (4194304)
WDFT: Calling WdfUsbInterfaceGetConfiguredPipe
WDFT: Calling WdfUsbTargetPipeSetNoMaximumPacketSizeCheck
WDFT: Calling WdfUsbTargetPipeIsInEndpoint
HibUsb: Bulk In Pipe handle is 0x7943E978, maximum packet size = 0x40 (64), maximum transfer size = 0x400000 (4194304)
HibUsb: <–HESelectInterfaces()
WDFT: Calling WdfRequestCreate
WDFT: Calling WdfRequestCreate
WDFT: Calling WdfMemoryCreate
WDFT: Calling WdfMemoryCreate
WDFT: Calling WdfUsbTargetDeviceRetrieveInformation
HibUsb: IsDeviceHighSpeed: FALSE
HibUsb: IsDeviceSelfPowered: TRUE
WDFT: HibUsb.sys calling WdfUsbTargetDeviceGetDeviceDescriptor
WDFT: Calling WdfObjectGetTypedContextWorker
HibUsb: –>HEIOCTL_HIBUSB_INTPIPE_Initilize…Driver Instance=0
WDFT: Calling WdfUsbTargetPipeConfigContinuousReader
HibUsb: <–HEIOCTL_HIBUSB_INTPIPE_Initilize
HibUsb: <–HEEvtDevicePrepareHardware()
HibUsb: –>HEEvtDeviceD0Entry()…previous power state is WdfPowerDeviceD3Final
WDFT: Calling WdfObjectGetTypedContextWorker
WDFT: Calling WdfIoTargetStart
WDFT: *** FI provider failing WdfIoTargetStart with status: 0xc0000001 (STATUS_UNSUCCESSFUL)
WDFT: Wmi event fired for 171 in HibUsb.sys
HibUsb: <–HEEvtDeviceD0Entry() **Error** WdfIoTargetStart failed…return ntStatus=0xc0000001
HibUsb: <–HEEvtDeviceD0Entry()
HibUsb: –>HEEvtDeviceReleaseHardware()
WDFT: Calling WdfObjectGetTypedContextWorker
HibUsb: The driver instance 0 has been removed.
HibUsb: <–HEEvtDeviceReleaseHardware()
Break instruction exception - code 80000003 (first chance)

-David Voeller


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

All done.

Manual Errata 2112 was created for this problem and my driver is now signed. The whole process of submitting a problem when submitting a driver package to WinQual was new to me so I thought I would share with others.

  1. I created the driver package using the Windows Submission Tool downloaded from the WinQual site.
  2. I created a ReadMe.txt file describing the problem detailed in this thread. I attached that to the driver package using the same Windows Submission Tool. I now know there is an actual Microsoft ReadMe form I should have used. The Readme file is available for download from the following site.
    http://www.microsoft.com/whdc/winlogo/default.mspx. Select the tab titled ‘Online Logo Tools’ and find the link to the WHQL Submission Readme Form titled under the section ‘Submission Tools & Forms for Windows Logo Program’
  3. I signed the package using “signcode.exe” and a 3 year Verisign certificate
  4. I submitted the package using the Microsfot WinQual site
  5. I got an email from Neslihan Bulut’s entry #19 of this thread (not sure if the package upload triggered this or if Bob Kjelgaard was kind enough to keep this moving).
  6. I submitted a support case using Neslihan Bulut’s link.
    a. Selected “Don’t use a professional support license/contact (charges may apply)”
    b. Selected 1 business day, $99, and used company credit card
    c. Entered the same information Neslihan Bulut posted in entry #19
  7. I got a call from Microsoft support 5 minutes after the support case was submitted to discuss. I indicated I had already submitted the driver package with the problem in the cpk files.
  8. I got emails 2 minutes after hanging up allowing me to upload the cpk files that had the DTM problem
  9. For the next hour I received several emails from Microsoft as to the status of both the errata and my driver approval.
  10. 6 hours after receiving Neslihan Bulut’s email the driver was approved.

It all happened quickly and professionally once Microsoft knew there was a problem.

-David Voeller