2021-09-11 06:10 PM
Hi all,
after developing the firmware for a composite USB application (AUDIO + CDC_VCOM) for an STM32F446 device, I'm facing strange behaviour in the driver side for Windows (I've tested both 10 and 8 with the same results) - Linux and MacOs works out of the box.
It seems that windows only sees the first device in the descriptor (AUDIO), install the standard drivers, and then fails to identify the CDC_VCOM device as the PID of the parent is detected as a generic "USB\VID_203A&PID_FFFE\PW3.0" without any %MI_01/&MI_02 identifier of composite device.
Above the events from system information when the device is connected:
Device USB\VID_0483&PID_5741\30353338045138352800200021 had a problem starting.
Driver Name: wdma_usb.inf
Class Guid: {4d36e96c-e325-11ce-bfc1-08002be10318}
Service: usbaudio
Lower Filters:
Upper Filters:
Problem: 0xA
Problem Status: 0xC0000182
Device USB\VID_0483&PID_5741\30353338045138352800200021 was configured.
Driver Name: wdma_usb.inf
Class Guid: {4d36e96c-e325-11ce-bfc1-08002be10318}
Driver Date: 03/18/2019
Driver Version: 10.0.18362.1
Driver Provider: Microsoft
Driver Section: USBAudio
Driver Rank: 0xFF2002
Matching Device Id: USB\Class_01
Outranked Drivers:
Device Updated: false
Parent Device: USB\VID_203A&PID_FFFE\PW3.0
Unfortunately I am clueless on how WIN works out the right driver for a device... What I can see is that te event list of a correctly detected composite device (STLINK-V2 MSC+VCOM) look like this:
//______________________ STLINK VCOM + MSC [MSC]
Device USBSTOR\Disk&Ven_MBED&Prod_microcontroller&Rev_1.0\8&25cc1fd0&0&0673FF544949847067092959&0 was started.
Driver Name: disk.inf
Class Guid: {4d36e967-e325-11ce-bfc1-08002be10318}
Service: disk
Lower Filters:
Upper Filters:
Device USBSTOR\Disk&Ven_MBED&Prod_microcontroller&Rev_1.0\8&25cc1fd0&0&0673FF544949847067092959&0 was configured.
Driver Name: disk.inf
Class Guid: {4d36e967-e325-11ce-bfc1-08002be10318}
Driver Date: 06/21/2006
Driver Version: 10.0.18362.1
Driver Provider: Microsoft
Driver Section: disk_install.NT
Driver Rank: 0xFF0006
Matching Device Id: GenDisk
Outranked Drivers: disk.inf:GenDisk:00FF2002
Device Updated: false
Parent Device: USB\VID_0483&PID_374B&MI_01\7&855d780&0&0001
//______________________ STLINK VCOM + MSC [VCOM]
Device USB\VID_0483&PID_374B&MI_02\7&855d780&0&0002 requires further installation.
Driver Management concluded the process to install driver stlink_vcp.inf_amd64_29e9917f088afd48 for Device Instance ID USB\VID_0483&PID_374B&MI_02\7&855D780&0&0002 with the following status: 0x0.
Driver Management has concluded the process to add Service usbser for Device Instance ID USB\VID_0483&PID_374B&MI_02\7&855D780&0&0002 with the following status: 0.
I hope somebody can help,
thank you,
Davide
2021-09-12 08:51 AM
Problem Status 0xC0000182 is STATUS_DEVICE_CONFIGURATION_ERROR.
"The I/O device is configured incorrectly or the configuration parameters to the driver are incorrect."
For further help with this you can ask in the Microsoft Q&A forum.
https://docs.microsoft.com/en-us/answers/topics/windows-10-hardware-performance.html
> without any %MI_01/&MI_02 identifier of composite device.
The MI_nn suffixes are child devices of the composite. The parent (composite device itself) does not have these.
Is "PW3.0" the "serial number" of your USB device?
2021-09-13 08:57 AM
Dear @Pavel A.,
Thank your for your kind reply. I've just posted the question in the Q&A forum you've suggested.
Here is the link to the topic: https://docs.microsoft.com/en-us/answers/questions/549388/windows10-usb-problem-0xc0000182-audio-vcom-compos.html
What you've pointed out, about the "PW3.0", is another strange thing I don't understand.
The serial number of my device is the 26 char string composed from the STM32_UUID and other static device informations [30353338045138352800200021]
That Parent Device "USB\VID_203A&PID_FFFE\PW3.0" is not one of my SN but it is something I see even when I use the AUDIO only mode of my device.
Here follows the event list that windows shows when my device is connected in AUDIO only (connected and installed well):
Device USB\VID_0483&PID_5731\30353338045138352800200021 was started.
Driver Name: wdma_usb.inf
Class Guid: {4d36e96c-e325-11ce-bfc1-08002be10318}
Service: usbaudio
Lower Filters:
Upper Filters:
Device USB\VID_0483&PID_5731\30353338045138352800200021 was configured.
Driver Name: wdma_usb.inf
Class Guid: {4d36e96c-e325-11ce-bfc1-08002be10318}
Driver Date: 03/18/2019
Driver Version: 10.0.18362.1
Driver Provider: Microsoft
Driver Section: USBAudio
Driver Rank: 0xFF2002
Matching Device Id: USB\Class_01
Outranked Drivers:
Device Updated: false
Parent Device: USB\VID_203A&PID_FFFE\PW3.0
I've tried also a solution I've found from another developer (for a HID + CDC device). He suggested to mod the VCOM driver to add the &MI_xx child device of the composite and also install a dsinst_***.exe afterwards, but again no luck and same not working result.
Here is the link of it's repository: https://gitlab.com/piotrva/stm32-composite-hid-cdc
Lastly, I've had my first reply from the Microsoft but they point out to an issue of Windows 1703. I have 1903 and the proposed KB4022716 is already installed.
That's harder than I expected it to be... given the fact that both LINUX and MACOS are working flawlessly!
2021-09-13 10:15 AM
> He suggested to mod the VCOM driver to add the &MI_xx child device of the composite and also install a dsinst_***.exe
Yes this is not going to help if Windows won't recognize both composite functions.
To eliminate the case of old/buggy Windows releases, try a fresh Win11 system or latest win10, while waiting for more helpful replies.
Maybe try also to swap the functions: make the CDC 1st function.
--pa
2021-09-29 02:17 AM
Dear @Pavel A.
Many thanks for your reply.
After various test (even swapping CDC and Audio classes) unfortunately we are still at the starting point: Mac and Linux works fine, but even a fresh Windows install still have issue in identifying the device.
By now we are still stuck in using just one of the operations mode at a time in Windows.
Anyway thank you so much for your help, we will continue to look into this and hope to find a solution.
2021-09-29 05:42 AM
OK. If you are motivated enough, Microsoft provides product support for Windows OS and Windows driver kit. That is the address.