Moore Computer Consultants USB Devices Driver



Download ivt mobile phones & portable devices driver

-->

This topic describes how to update a removable or in-chassis device's firmware using the Windows Update (WU) service. For information about updating system firmware, see Windows UEFI firmware update platform.

USB

To do this, you'll provide an update mechanism, implemented as a device driver, that includes the firmware payload. If your device uses a vendor-supplied driver, you have the option of adding the firmware update logic and payload to your existing function driver, or providing a separate firmware update driver package. If your device uses a Microsoft-supplied driver, you must provide a separate firmware update driver package. In both cases, the firmware update driver package must be universal. For more info about universal drivers, see Getting Started with Windows Drivers. The driver binary can use KMDF, UMDF 2 or the Windows Driver Model.

Moore Computer Consultants Usb Devices Driver Updater

He’s been running the show since creating the site back in 2006. Over the last decade, Lowell has personally written more than 1000 articles which have been viewed by over 250 million people. Prior to starting How-To Geek, Lowell spent 15 years working in IT doing consulting, cybersecurity, database management, and programming work. To install new drivers manually, just right-click the device in Device Manager, choose “Update Driver Software” from the menu, and then pick the “Browse my computer for driver software” on the first wizard page. The rest is pretty self-explanatory—browse to the folder you extracted the drivers, and run through the rest of the wizard. The first production IBM hard disk drive, the 350 disk storage, shipped in 1957 as a component of the IBM 305 RAMAC system.It was approximately the size of two medium-sized refrigerators and stored five million six-bit characters (3.75 megabytes) on a stack of 52 disks (100 surfaces used).

Because WU cannot execute software, the firmware update driver must hand the firmware to Plug and Play (PnP) for installation.

Firmware update driver actions

Typically, the firmware update driver is a lightweight device driver that does the following:

  • At device start or in the driver's EVT_WDF_DRIVER_DEVICE_ADD callback function:

    1. Identify the device to which it is attached.
    2. Determine whether the driver has a firmware version that is more recent than the version on the firmware currently flashed on device hardware.
    3. If a firmware update is necessary, set an event timer to schedule the update.
    4. Otherwise, do nothing until the driver is started again.
  • During system runtime:

    1. If an update is queued, wait for a set of conditions to be met.
    2. When conditions are met, perform the firmware update on the device.

Firmware update driver contents

Typically, the firmware update driver package contains the following:

  • Driver catalog
  • Function driver (.sys or .dll)
  • Firmware update payload binary

Submit your firmware update package as a separate driver submission.

Adding firmware update logic to a vendor-supplied driver

The existing function driver can implement the firmware update mechanism, as shown in the following diagram:

Alternatively, if you want to update the function driver and the firmware update driver separately, create a second device node, on which you will install the firmware update driver. The following diagram shows how one device can have two separate device nodes: Mobiledemand laptops & desktops driver download for windows 10.

In this case, the function and firmware device nodes must have different hardware IDs in order to be targeted independently.

There are a couple ways to create a second device node. Certain device types have the ability to expose a second device node on one physical device, such as USB. You can use this functionality to create a device node targetable by WU, and install a firmware update driver on it. Many device types, however, do not allow a single physical device to enumerate more than one device node.

In this case, use an extension INF that specifies the AddComponent directive to create a device node that can be targeted by Windows Update and install the firmware update driver on it. The following snippet from an INF file shows how you can do this:

In the above INF sample, ComponentIDs = ComponentDeviceId indicates that the child device will have a hardware ID of SWCComponentDeviceId. When installed, this INF creates the following device hierarchy:

For future firmware updates, update the INF and binary file containing the firmware payload.

Adding firmware update logic to a Microsoft-supplied driver

To update firmware for devices that use a Microsoft-supplied driver, you need to create a second device node, as shown above.

Best practices

  • In your firmware update driver INF, specify DIRID 13 to cause PnP to leave the files in the driver package in the DriverStore:

    PnP resolves this location when it installs the device. The driver can then open this registry key to determine the location of the payload.

  • Firmware update drivers should specify the following INF entries:

  • To locate another device node, the firmware driver should walk the device tree relative to itself, not by enumerating all device nodes for a match. A user may have plugged in multiple instances of the device, and the firmware driver should only update the device with which it is associated. Typically, the device node to be located is the parent or sibling of the device node on which the firmware driver is installed. For example, in the diagram above with two device nodes, the firmware update driver can look for a sibling device to find the function driver. In the diagram immediately above, the firmware driver can look for the parent device to find the primary device with which it needs to communicate.

  • The driver should be robust to multiple instances of the device being on the system, possibly with multiple different firmware versions. For example, there may be one instance of the device that has been connected and updated several times; a brand new device may then be plugged in which is several firmware versions old. This means that state (such as current version) must be stored against the device, and not in a global location.

  • If there is an existing method to update the firmware (EXE or co-installer, for example), you can largely reuse the update code within a UMDF driver.

Sponsored By

I'm pretty happy with Windows 10 as my primary development box. It can do most anything I want, run a half-dozen Linuxes, and has a shiny new open source Terminal, and has great support for Docker now.

However.

For years - YEARS I SAY - Windows has been a huge hassle when you want to flash the firmware of various devices over USB.

The term 'dfu' means Device Firmware Update and dfu-util is the Device Firmware Update Utility, natch.

Very often I'll find myself with a device like a Particle Photon, Wilderness Labs Meadow, or some STM32 device that uses the ST Bootloader.

The Mac and Linux instructions usually say something like 'plug it in and party on' but folks like myself with Windows have to set up a WinUSB Driver (libusb-win32 or libusbK) as dfu-util uses those libraries to speak to USB devices.

Matrox G200 overview and full product specs on CNET. Laptops Best Phones Best TVs Best. Internet Mobile Apps Personal Finance Phones. Windows MatroX-Sales Mobile is an innovative app enabling active management of sales network in all kinds of companies. The system was designed to support sales representatives’ field work and perform processes connected with information flow within the company’s organizational structure. Matrox is a global industry leader in hardware and software solutions for broadcast, AV, and machine vision applications. Needless to say, Matrox has jumped on this bandwagon with their first clock-speed segregated product release in the history of the company, the Matrox Millennium G400 and the Millennium G400MAX.

If you plug in a device, the vast majority of Windows users want the device to 'just work.' My non-technical parent doesn't want Generic USB drivers so they can flash the firmware on their mouse. I, however, as an aristocrat, sometimes want to do low-level stuff and flash an OS on a Microcontroller.

Today, the easiest way to swap the 'inbox' driver with WinUSB is using a utility called Zadig. Per their docs:

Zadig is a Windows application that installs generic USB drivers,
such as WinUSB, libusb-win32/libusb0.sys or libusbK, to help you access USB devices.

It can be especially useful for cases where:

  • you want to access a device using a libusb-based application
  • you want to upgrade a generic USB driver
  • you want to access a device using WinUSB

If you follow the instructions when flashing a device and don't have the right USB driver installed you'll likely get an error like this:

That's not a lot to go on. The issue is that the default 'inbox' driver that Windows uses for devices like this isn't set up for Generic USB access with libraries like 'libusb.'

Install a generic USB driver for your device - WinUSB using Zadig

Run Zadig and click Options | List All Devices.

Here you can see me finding the ST device within Zadig and replacing the driver with WinUSB. In my case the device was listened under STM32 Bootloader. Be aware that you can mess up your system if you select something like your WebCam instead of the hardware device you mean to select.

Moore Computer Consultants Usb Devices Driver Windows 7

In this state, you can see in the Device Manager that there's an 'STM Device in DFU Mode.'

Now I run Zadig and replace the driver with WinUSB. Here's the result. Note the SUCCESS and the changed Driver on the left.

Here the STM32 Bootloader device now exists in Universal Serial Bus Devices in Device Manager.

Now I can run dfu-util --list again. Note the before and after in the screenshot below. I run dfu-util --list and it finds nothing. I replace the bootloader with the generic WinUSB driver and run dfu-util again and it finds the devices.

At this point I can follow along and flash my devices per whatever instructions my manufacturer/project/boardmaker intends.

NOTE: When using dfu-util on Windows, I recommend you either be smart about your PATH and add dfu-util, or better yet, make sure the dfu-util.exe and libusb.dlls are local to your firmware so there's no confusion about what libraries are being used.

I'd love to see this extra step in Windows removed, but for now, I hope this write up makes it clearer and helps the lone Googler who finds this post.

Sponsor: Develop Xamarin applications without difficulty with the latest JetBrains Rider: Xcode integration, JetBrains Xamarin SDK, and manage the required SDKs for Android development, all right from the IDE. Get it today

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

What Is A Usb Devices


Moore Computer Consultants Usb Devices Drivers

AboutNewsletter



Comments are closed.