So I’m getting further along in my generic parent. I’ve created a series of faux config descriptors and responded to the SELECT_CONFIGURATION URB successfully.
The next URB that I get from my (KMDF) function driver above is SELECT_INTERFACE. I saw no reason not to just pass this straight down, so I did.
However, this generated the following bugcheck. Why would this happen?
WDF_VIOLATION (10d)
DESCRIPTION
The Windows Driver Framework has detected that a violation has occurred This resulted
in a condition where the machine would hang forever. By crashing, the Windows Driver
Framework is attempting to get enough information into the minidump such that somebody
can pinpoint the machine crash’s cause, which is inside this driver.
Arguments:
Arg1: 00000006, Device object of the failing device
Arg2: 00000001, State that timed out
Arg3: 872f0be8
Arg4: 872f97e8
Debugging Details:
*** ERROR: Module load completed but symbols could not be loaded for hhdusbh.sys
OVERLAPPED_MODULE: kmixer
DEFAULT_BUCKET_ID: DRIVER_FAULT
BUGCHECK_STR: 0x10D
LAST_CONTROL_TRANSFER: from b428213a to b4291e81
STACK_TEXT:
f6c37334 b428213a 872f97e8 00000006 00000001 Wdf01000!FxVerifierBugCheck+0x24
f6c37358 bf9165c6 87361010 78c9efe8 f6c373a8 Wdf01000!imp_WdfRequestFormatRequestUsingCurrentType+0x85
f6c37368 bf916539 78c9efe8 c0000001 00000018 xxxccgp!WdfRequestFormatRequestUsingCurrentType+0x16 [c:\winddk\6000\inc\wdf\kmdf\10\wdfrequest.h @ 518]
f6c373a8 bf9162e4 873b83f8 78c9efe8 8732a3d0 xxxccgp!xxxCcgpEvtHandleSubmitUrb+0x149 [y:\xxxccgp\driver.c @ 808]
f6c373f0 b42a6ba4 78c473a8 78c9efe8 8732a3d0 xxxccgp!xxxCcgpEvtIoInternalDeviceControl+0xe4 [y:\xxxccgp\driver.c @ 713]
f6c37414 b42a7f7c 78c473a8 78c9efe8 8732a3d0 Wdf01000!FxIoQueueIoDeviceControl::Invoke+0x30
f6c37444 b42aa598 78c9efe8 87361010 873b8c50 Wdf01000!FxIoQueue::DispatchRequestToDriver+0x445
f6c37460 b42abd2c 873b8c00 b42d1188 873b8c50 Wdf01000!FxIoQueue::DispatchEvents+0x485
f6c3747c b42ace67 00000000 8735f7b0 872f0be8 Wdf01000!FxIoQueue::QueueRequest+0x237
f6c374a0 b429bd9a 872f0be8 872f0be8 8041dded Wdf01000!FxPkgIo::Dispatch+0x377
f6c374ac 8041dded 8735f7b0 872f0be8 872f0c74 Wdf01000!FxDevice::Dispatch+0x7f
f6c374c0 f6b09cf9 873b8a80 872f0be8 f6c3754c nt!IopfCallDriver+0x35
FOLLOWUP_IP:
Wdf01000!FxVerifierBugCheck+24
b4291e81 cc int 3
SYMBOL_STACK_INDEX: 0
FOLLOWUP_NAME: MachineOwner
SYMBOL_NAME: Wdf01000!FxVerifierBugCheck+24
MODULE_NAME: Wdf01000
IMAGE_NAME: Wdf01000.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4549b23a
STACK_COMMAND: kb
FAILURE_BUCKET_ID: 0x10D_Wdf01000!FxVerifierBugCheck+24
BUCKET_ID: 0x10D_Wdf01000!FxVerifierBugCheck+24