Asia_pacific USB Devices Driver



Tektronix USB instruments use and require a generic USB Device Driver, referred to as a USB Test & Measurement Class driver or USBTMC driver. USBTMC is a subclass of the USB specification. This driver is typically included with the Virtual Instrument Software Architecture (VISA). (See block diagram below.) For Tektronix oscilloscopes, this. Xiaomi USB Driver plays a significant role in providing a connection between PC and your Xiaomi mobile. Download Xiaomi USB Driver Users can quickly see their documents, move press by installing those drivers onto your computers.

  1. Asia_pacific Usb Devices Drivers
  2. Asia_pacific USB Devices Driver
-->

Summary

  • How to use the DeviceWatcher object to detect devices
  • How to open the device for communication
  • How to close the device when you are finished using it

Important APIs

When you write a UWP app that interacts with a USB device, the app can send control commands, get device information, and read and write data to/from bulk and interrupt endpoints. Before you can do all that, you must find the device and establish connection.

Before you start...

  • This is the first topic in a series. Before you start this tutorial, you must have created a basic Visual Studio project that you can extend in this tutorial. Read Getting started with UWP apps for more info.
  • Code examples are based on the CustomUsbDeviceAccess sample. You can download the complete sample from this code gallery page.
  • The USB device used in tutorial is the SuperMUTT device.
  • In order to use the Windows.Devices.Usb namespace to write a Windows app that interacts with a USB device, the device must have the Winusb.sys driver loaded as its function driver. Winusb.sys is provided by Microsoft and is included with Windows in the WindowsSystem32drivers folder.

Flowchart: Finding the device

To connect to a USB device, you must first find the device based on various discovery patterns and then connect to it:

  • Connect to any USB device with a specific device interface GUID.
  • Connect to a USB device with a particular Vendor ID and Product ID and that has a specific device interface GUID.
  • Connect to a USB device with a particular Vendor ID and Product ID without knowing the device interface GUID.
  • Connect to a USB device which has known device class.

Key concepts

What is a device interface GUID?

A kernel-model driver, during its initialization, register and exposes a GUID called the device interface GUID. Typically, the app uses the exposed GUID to find the associated driver and its device, and then open a handle to the device. The retrieved handle is used for subsequent read and write operations.

However, in the case of Winusb.sys, instead of the driver exposing the device interface GUID, it can be provided in one of two ways:

  • In the device's MS OS descriptors. The device manufacturer sets DeviceInterfaceGUID as a custom property in the extended properties descriptor in the device. For more details, see the 'Extended Properties Descriptors' document in Microsoft OS Descriptors.
  • If you installed Winusb.sys manually through a custom INF, the INF registered a GUID in the INF. See WinUSB (Winusb.sys) Installation.

If a device interface GUID is found for the device, your UWP app can find all devices that match that device interface GUID.

How is USB device identification shown in Windows?

Every USB device must have two pieces of information: vendor ID and product ID.

USB-IF assigns those identifiers and the device manufacturer must expose them in the device. So how can you obtain that information?

  • Even when the device doesn't have a device driver loaded, that is, Windows detects it as an 'Unknown Device', you can still view the identifiers in the Device Manager in the Hardware Id property value. That value is a combination of those two identifiers. For example, for the SuperMUTT device, the Hardware Id is 'USBVID_045E&PID_F001'; vendor id is '0x045E' and product id is '0xF001'.

  • If there is an INF for the device, obtain that string from the Models section.

  • You can inspect various registry settings. The easiest way is to see the

    HKEY_LOCAL_MACHINESYSTEMControlSet001EnumUSB<hardware id>

    For more information, see USB Device Registry Entries.

  • Hardware ID is used by the app manifest to identify the device.

    <Device>

Your UWP app can find all devices that match a specific vendor and product ids. You can narrow the search results by specifying the device interface GUID.

Asia_pacific Usb Devices Drivers

What are USB device classes?

Most USB devices conform to device class specifications approved by USB-IF. By using those specifications, devices of similar nature can exhibit their functionality in a standard way. The biggest advantage of this approach is that the device can use a Microsoft provided in-box class driver or the generic Winusb.sys driver.

Some devices might not follow a USB-IF specification. Instead they expose vendor-defined functionality. For such devices, either the vendor must provide the device driver or Winusb.sys can be used.

Whether a device is vendor-defined or conforms to a device class, it must describe this device class related information:

  • Class code: Indicates the device class to which the device belongs.
  • Subclass code: Within the device class, indicates the subclass of device.
  • Protocol code: The protocol that the device uses.

For example, the SuperMUTT device is a vendor-defined device and that information is indicated by class code is FF. If your device shows class code as FEh, subclass code as 02h, and protocol code 00h, you can conclude that the device is a class-compliant IrDA bridge device.Your UWP app can communicate with devices that belong to these device classes:

  • ActiveSync
  • CdcControl
  • DeviceFirmwareUpdate
  • IrDA
  • Measurement
  • PalmSync
  • PersonalHealthcare
  • Physical
  • VendorSpecific

Your UWP app can find all devices that match a specific set of class, subclass, and protocol codes.

Asia_pacific USB Devices Driver

Get the Advanced Query Syntax (AQS) string for the device

Generate an advanced query string (AQS) that contains identification information about the device that you want to detect. You can generate the string either by specifying the vendor/product IDs, device interface GUID, or by the device class.

  • If you want to provide the vendor ID/product ID or the device interface GUID, call any overload of GetDeviceSelector.

    In the example of the SuperMUTT device, GetDeviceSelector retrieves an AQS string similar to this string:

    'System.Devices.InterfaceClassGuid:='{DEE824EF-729B-4A0E-9C14-B7117D33A817}' AND System.Devices.InterfaceEnabled:=System.StructuredQueryType.Boolean#True AND System.DeviceInterface.WinUsb.UsbVendorId:=1118 AND System.DeviceInterface.WinUsb.UsbProductId:=61441'

    Note Notice that the device interface GUID that appears in the string is not the one you specified. That GUID is the actual device interface GUID registered by Winusb.sys for UWP apps.

  • If you know the device class of the device or its class, subclass, and protocol codes, call GetDeviceClassSelector to generate the AQS string.

    Create a UsbDeviceClass object by specifying ClassCode, SubclassCode, and ProtocolCode property values. Alternatively, if you know the device class of the device, you can call the constructor by specifying a particular UsbDeviceClasses property.

Finding the device—The basic way

This is the simplest way to find a USB device. For details, see Quickstart: enumerating commonly used devices.

  1. Pass the retrieved AQS string to FindAllAsync. The call retrieves a DeviceInformationCollection object.
  2. Loop through the collection. Each iteration gets a DeviceInformation object.
  3. Get the DeviceInformation.Id property value. The string value is the device instance path. For example, '?USB#VID_045E&PID_078F#6&1b8ff026&0&5#{dee824ef-729b-4a0e-9c14-b7117d33a817}'.
  4. Call FromIdAsync by passing the device instance string and get the UsbDevice object. You can then use the UsbDevice object to perform other operations, such as sending a control transfer. When the app has finished using the UsbDevice object, the app must release it by calling Close.Note When UWP app suspends, the device is closed automatically. To avoid using a stale handle for future operations, the app must released the UsbDevice reference.

Find the device—using DeviceWatcher

Alternatively, you can enumerate devices dynamically. Then, your app can receive notification if devices are added or removed, or if device properties change. For more information, see How to get notifications if devices are added, removed, or changed.

A DeviceWatcher object enables an app to dynamically detect devices as they get added and removed from the system.

  1. Create a DeviceWatcher object to detect when the device is added to or removed from the system. You must create the object by calling CreateWatcher and specifying the AQS string.

  2. Implement and register handlers for Added and Removed events on the DeviceWatcher object. Those event handlers are invoked when devices (with the same identification information) are added or removed from the system.

  3. Start and stop the DeviceWatcher object.

    The app must start the DeviceWatcher object by calling Start so that it can start detecting devices as they are added or removed from the system. Conversely, the app must stop the DeviceWatcher by calling Stop, when it's no longer necessary to detect devices. The sample has two buttons that allows the user to start and stop DeviceWatcher.

This code example shows how to create and start a device watcher to look for instances of the SuperMUTT device.

Open the device

To open the device, the app must start an asynchronous operation by calling the static method FromIdAsync and passing the device instance path (obtained from DeviceInformation.Id). That result of that operation obtain is a UsbDevice object, which is used for future communication with the device, such as performing data transfers.

Asia_pacific USB Devices Driver

After you are finished using the UsbDevice object, you must release it. By releasing the object, all pending data transfers are canceled. The completion callback routines for those operations are still invoked with canceled error or the operation completed.

C++ apps must release the reference by using the delete keyword. C#/VB apps must call the UsbDevice.Dispose method. JavaScript apps must call UsbDevice.Close.

The FromIdAsync fails if the device is in use or cannot be found.

Google is committed to advancing racial equity for Black communities. See how.

If you are developing on Windows and want to connect a device for testing,then you need to install the appropriate USB driver. This pageprovides links to the web sites for several original equipment manufacturers (OEMs),where you can download the appropriate USB driver for your device.

If you're developing on Mac OS X or Linux, then you shouldn't need a USB driver.Instead read Using Hardware Devices.

Asia_pacific usb devices driversDriver

To connect and debug with any of the Google Nexus devices using Windows, youneed to install the Google USB driver.

Install a USB driver

First, find the appropriate driver for your device from the OEM driverstable below.

Once you've downloaded your USB driver, follow the instructions below to install or upgrade thedriver, based on your version of Windows and whether you're installing for the first timeor upgrading an existing driver. Then see Using Hardware Devices forother important information about using an Android device fordevelopment.

Caution:You may make changes to android_winusb.inf file found insideusb_driver (for example, to add support for other devices),however, this will lead to security warnings when you install or upgrade thedriver. Making any other changes to the driver files may break the installationprocess.

Windows 10

To install the Android USB driver on Windows 10 for the first time, do the following:

  1. Connect your Android device to your computer's USB port.
  2. From Windows Explorer, open Computer Management.
  3. In the Computer Management left pane, select Device Manager.
  4. In the Device Manager right pane, locate and expand Portable Devices or Other Devices, depending on which one you see.
  5. Right-click the name of the device you connected, and then select Update Driver Software.
  6. In the Hardware Update wizard, select Browse my computer for driver software and click Next.
  7. Click Browse and then locate the USB driver folder. For example, the Google USB Driver is located in android_sdkextrasgoogleusb_driver.
  8. Click Next to install the driver.

Windows 8.1

To install the Android USB driver on Windows 8.1 for the first time, do the following:

  1. Connect your Android device to your computer's USB port.
  2. Access search, as follows:

    Touch screen: On your computer, swipe in from the right edge of the screen and tap Search.

    Using a mouse: Point to the lower-right corner of the screen, move the mouse pointer up, and then click Search.

  3. In the search box, type into and then click Device Manager.
  4. Double-click the device category, and then double-click the device you want.
  5. Click the Driver tab, click Update Driver, and follow the instructions.

Windows 7

To install the Android USB driver on Windows 7 for the first time, do the following:

  1. Connect your Android device to your computer's USB port.
  2. Right-click on Computer from your desktop or Windows Explorer, and select Manage.
  3. Select Devices in the left pane.
  4. Locate and expand Other device in the right pane.
  5. Right-click the device name (such as Nexus S) and select Update Driver Software. This will launch the Hardware Update Wizard.
  6. Select Browse my computer for driver software and click Next.
  7. Click Browse and locate the USB driver folder. (The Google USBDriver is located in android_sdkextrasgoogleusb_driver.)
  8. Click Next to install the driver.

Or, to upgrade an existing Android USB driver on Windows 7 and higher with the newdriver:

  1. Connect your Android device to your computer's USB port.
  2. Right-click on Computer from your desktop or Windows Explorer, and select Manage.
  3. Select Device Manager in the left pane of the Computer Management window.
  4. Locate and expand Android Phone in the right pane.
  5. Right-click on Android Composite ADB Interface and select Update Driver. This will launch the Hardware Update Wizard.
  6. Select Install from a list or specific location and click Next.
  7. Select Search for the best driver in these locations; uncheckSearch removable media; and check Include this location in thesearch.
  8. Click Browse and locate the USB driver folder. (The Google USBDriver is located in android_sdkextrasgoogleusb_driver.)
  9. Click Next to upgrade the driver.

Get OEM drivers

OEMDriver URL
Acer http://www.acer.com/worldwide/support/
alcatel one touch http://www.alcatelonetouch.com/global-en/support/
Asus https://www.asus.com/support/Download-Center/
Blackberry https://swdownloads.blackberry.com/Downloads/entry.do?code=4EE0932F46276313B51570F46266A608
Dell http://support.dell.com/support/downloads/index.aspx?c=us&cs=19&l=en&s=dhs&~ck=anavml
Fujitsu http://www.fmworld.net/product/phone/sp/android/develop/
HTC http://www.htc.com/support
Huawei http://consumer.huawei.com/en/support/index.htm
Intel http://www.intel.com/software/android
Kyocera http://www.kyocera-wireless.com/support/phone_drivers.htm
Lenovo http://support.lenovo.com/us/en/GlobalProductSelector
LGE http://www.lg.com/us/support/software-firmware
Motorola https://motorola-global-portal.custhelp.com/app/answers/detail/a_id/88481/
MTK http://online.mediatek.com/Public%20Documents/MTK_Android_USB_Driver.zip (ZIP download)
Samsung http://developer.samsung.com/galaxy/others/android-usb-driver-for-windows
Sharp http://k-tai.sharp.co.jp/support/
Sony Mobile Communications http://developer.sonymobile.com/downloads/drivers/
Toshiba http://support.toshiba.com/sscontent?docId=4001814
Xiaomi http://www.xiaomi.com/c/driver/index.html
ZTE http://support.zte.com.cn/support/news/NewsDetail.aspx?newsId=1000442

If you don't see a link for the manufacturer of your device here, go to the support section of the manufacturer's website and search for USB driver downloads for your device.