Windows - USB device not detected

This may be more of a Windows than a Rust question. I'll ask nonetheless:

I have written a program to control a USB missile launcher toy.

It works as intended on Linux.
On Windows however, the underlying USB device is not detected.
When I list the USB devices, it does not show up in the list of connected devices.
When I plug it in, however, I hear that Windows sound that plays when a USB device connects, yet the list of connected devices as seen by rusb remains unchanged.

I have not much experience in OS development under Windows, so I don't know how Windows handles USB devices and what I need to do to make the device being detected, so that I can communicate with it, as I can under Linux, where it does show up in lsusb.

Any hints on how to get Windows to make the device accessible by rusb is appreciated.

Are you wedded to rusb; does nusb list it? I've used nusb successfully with Windows.

Thanks. I migrated to nusb : usb-missile-launcher/uml/src/missile_launcher.rs at 2f32c6a211a4f61b8d8fca9ee940ce665b61b92b · conqp/usb-missile-launcher · GitHub
However, the device is still not detected under Windows.
I guess that there's something else missing.

This is not a RUST thing. IT is an OS Driver problem.

On Linux - the first thing you do is use the "lsusb" command to see if the device is listed or not. Then you can use LIBUSB to talk to the device

On Windows, open the "DEVICE MANAGER" and dig through the USB devices and try to find the device. It probably has a yellow warning triangle indicating there is no driver found.

IT might be helpful to plug/unplug the toy each time you do that the device manager will reset/reload.

For windows - SOME - not all devices have a built driver (ie: A keyboard, mouse, usb-hub) some do not - ie: USB SERAIL devices.

Every USB Device is identified by a 32bit number (a 16bit Manufacturer/VENDOR ID, and a 16bit Product ID) Given those two 16bit/(one 32bit) numbers windows searches for a matching INF File - it either (A) already has one or (B) it does not and it wants a driver - aka: At least an INF File, often other files that go with the INF file.

it is possible the reported usb descriptor by the device is not compatible with the microsoft generic usb driver (winusb.sys), which is the kernel driver used by libusb and similar user mode usb libraries.

or, the device might have loaded a specialized driver, preventing the generic winusb.sys from being attached.

in any case, you need to make sure the winusb.sys is being used.

Thanks for the pointer. I started writing the INF file and installed the needed SW stack, but building and signing this driver is like running the gauntlet.
I am aborting my attempt to get this device to work under Windows at this point, since it is not worth the humonguous effort to me.

You should check with others who have a done SW for this.
often (but not always) you will find a driver (INF file) that supports WINUSB