How would an OEM go about getting their USB device driver added to Windows Update, so that it will be downloaded and installed automatically when the device is connected to the PC? In our case, if it matters, it will be a custom USB device class, and the driver will wrap WinUSB.
Is it possible to do this for Windows 7, Windows 8, and Windows 10? 32 and 64-bit.
What keywords (for searching) and concepts should I be aware of?
The question is misguided. The interface to WinUSB lives in userspace - not kernel space - so that DLL will be a library that lives in userspace; it won't be a driver.
The device will report via its device descriptors to Windows that it can use the WinUSB driver, so Windows won't look for its wrapper.
Related
I am developing a Win10 C# application dependent on a third party library, which enables me to control a USB3 device.
By trial and error, I found that I needed to run FTD3XXDriver_WHQLCertified_v1.3.0.4_Installer.exe, which in the end populated the SysWOW64 with FTD3XX.dll and System32\Drivers with FTDIBUS3.sys and the ancillary files and folder.
I would like to run my application from a USB thumb drive on different PC's in my organization without installing any of the drivers. Is there a way to do that?
Bad news: To the best of my knowledge you cannot address an FTDI device if the driver is not installed.
But windows normally install the driver automatically via the windows updater. At least, this is the case for the USB 2 devices of FTDI i.e. 232 family. I do not have a FT60X here to test if the windows updater has a driver ready for this as well.
If the driver is installed via the updater you have to bundle the FTD3XX.DLL with your application as it is not part of the "windows standard" driver. At least this was the case for the FTD2XX.DLL.
Long story short: connect your device to a computer without preinstalled driver. Check if the driver is installed via the windows updater. If this is the case, you mostlikely just need to bundle the FTD3XX.DLL with you application.
We have a hardware device that presents as a composite USB device: MSC+CDC+HID+WebUSB. We don't want to support WebUSB for Windows 7 for a variety of reasons, but would like the device to install "successfully" and find drivers for all the USB interfaces it supplies, so that the user doesn't see the Windows notification "Device driver software was not successfully installed".
On Windows 10, support for all devices is already built in. On Windows 7 we supply a driver installer that provides CDC (usbser), and the others are built in. The .inf file for CDC matches the device's USB VID, PID, and a specific MI, e.g. USB\VID_vvvv&PID_pppp&MI_00. The WebUSB device is at USB\VID_vvvv&PID_pppp&MI_04.
I'd like to supply a dummy driver for MI_04 so it installs successfully but does nothing. Is there a built-in dummy driver available in Windows 7, or some way to use some other built-in driver that will do nothing? Or is it easy to build a dummy driver to install for that interface?
I had the wrong search term. I wanted a "null" driver. Link here explains: https://learn.microsoft.com/en-us/windows-hardware/drivers/install/installing-a-null-driver. A null device is recognized but not used and will not be started.
Based on the link above, I added something like this to my .inf:
[Devices]
...
"WebUSB device dummy = NullInstall, USB\VID_vvvv&PID_pppp&MI_04
...
[NullInstall]
; empty
[NullInstall.Services]
AddService = ,2 ; no value for the service name
To make my program could communicate with Nokia phone I have setup libusb-win32 library. But after I have this library installed any standard Nokia soft like PC Suite refuses not only to communicate but even to detect my phone! The phone is still available only to my program through libusb-win32 now. Removal of the libusb0.sys driver helps and phone becomes again accessible through Nokia PC Suite, but then it is no more visible to my app via libusb-win32 library. Whether it is somehow possible to get the phone accessible as through libusb-win32 for my application as for standard Nokia phone programs (Nokia PC Suite, NSU, NSS, etc.)?
I run Windows 7 Enterprise and libusb-win32 1.2.6.0
Answer to myself. Yes, it is possible. The driver libusb-win32 should be installed in the filter drive option, not in the device file option.
I have created a fake usb flash driver driver in Windows that will fake Windows into thinking that a new hardware device is attached. I have also found the APIs that allow me to enumerate the hardware attached (so I know which device is my fake driver).
The problem is I only want to attach the hardware when my program is running, and I don't want it to be accessible when my program is not running.
How can I programmatically add this hardware or enable/disable this driver? Someone suggested the right nomenclature is "load/unload".
Using VC++ with Windows APIs on Windows 7 and higher.
Try the C++ class wrapper to load/unload device drivers from code project.
I'm new to WDM driver development, but I have an experience developing
Linux drivers.
i want to develop Ethernet over USB class driver for windows XP. (CDC-ECM class driver)
i know that windows only support RNDIS/NDIS for the network class and thus i will need to write a custom windows driver that replace the RNDIS driver while maintaining the rest of the USB stack.
so far i downloaded the windows driver kit (WDK) and still reading the documentation.
does anyone know how to do this or where to get started ? (other than WDK documentation)
i tried google but still can't figure it out.
Regards,
You have to write a NDIS Miniport driver which uses a USB KMDF miniport driver at the lower edge.