Microcomputer Applications USB Devices Driver

Posted on  by 



-->

Summary

  • Guidelines for choosing the right programming model
  • UWP app and desktop app developer experience

Important APIs

USB Composite Device (The device is a single USB gadget that has the ability to perform more than one function, and needs to be exposed to the operating system as multiple devices) USB Ethernet/RNDIS Gadget (Remote Network Driver Interface Specification ( RNDIS ) is a Microsoft proprietary protocol used mostly on top of USB. SAMSUNGUSBDriverforMobilePhones.exe The USB Driver for Windows is available for download on this page. You need the driver only if you are developing on Windows and want to connect a Samsung Android device to your development environment over USB. Use this application to backup and restore presentation, pictures, songs and applications from and to USB Flash Drive devices and take them with you. Use USB Flash Drives to store personal data, to keep your network configuration and to share information with your friends. Microsoft USB Flash Drive.

This topic provides guidelines for deciding whether you should write a UWP app or a Windows desktop app to communicate with a USB device.

Windows provides API sets that you can use to write apps that talk to a custom USB devices. The API performs common USB-related tasks such as, finding the device, data transfers.

'Custom device' in this context means, a device for which Microsoft does not provide an in-box class driver. Instead, you can install WinUSB (Winusb.sys) as the device driver.

Choosing a programming model

If you install Winusb.sys, here are the programming model options:

  • Windows 8.1 provides a new namespace: Windows.Devices.Usb. The namespace cannot be used in earlier version of Windows. Other Microsoft Store resources are here: UWP app.

  • Before Windows 8.1, apps that were communicating through Winusb.sys, were desktop apps written by using WinUSB Functions. In Windows 8.1, the API set has been extended. Other Windows desktop app resources are here: Windows desktop app.

The strategy for choosing the best programming model depends on various factors.

  • Will your app communicate with an internal USB device?

    The APIs are primarily designed for accessing peripheral devices. The API can also access PC internal USB devices. However access to PC internal USB devices from a UWP app is limited to a privileged app that is explicitly declared in device metadata by the OEM for that PC.

  • Will your app communicate with USB isochronous endpoints?

    If your app transmits data to or from isochronous endpoints of the device, you must write a Windows desktop app. In Windows 8.1, new WinUSB Functions have been added to the API set that allow a desktop app to send data to and receive data from isochronous endpoints.

  • Is your app a 'control panel' type of app?

    UWP apps are per-user apps and do not have the ability to make changes outside the scope of each app. For these types of apps, you must write a Windows desktop app.

  • Is the USB device class supported classes by UWP apps?

    Write a UWP app if your device belongs to one these device classes.

    • name:cdcControl, classId:02 * *
    • name:physical, classId:05 * *
    • name:personalHealthcare, classId:0f 00 00
    • name:activeSync, classId:ef 01 01
    • name:palmSync, classId:ef 01 02
    • name:deviceFirmwareUpdate, classId:fe 01 01
    • name:irda, classId:fe 02 00
    • name:measurement, classId:fe 03 *
    • name:vendorSpecific, classId:ff * *

    Note If your device belongs to DeviceFirmwareUpdate class, your app must be a privileged app.

If your device does not belong to one the preceding device classes, write a Windows desktop app.

Driver requirement

Driver requirementUWP appWindows desktop app
Function driverMicrosoft-provided Winusb.sys (kernel-mode driver).Microsoft-provided Winusb.sys (kernel-mode driver).
Filter driverIf filter drivers are present, access is limited to privileged apps. The app is declared as privileged apps in device metadata by the OEM.Filter driver can be present in the kernel mode device stack as long as it doesn't block access to Winusb.sys.
Devices

Code samples

Devices
SampleUWP appWindows desktop app
Get started with these samples
  • Start with the WinUsb Application template included with Microsoft Visual Studio (Ultimate or Professional)
  • Extend the template by using code examples shown in How to Access a USB Device by Using WinUSB Functions.
Microcomputer Applications USB Devices DriverUsb

Development tools

Development toolsUWP appWindows desktop app
Developer environment

Microsoft Visual Studio 2013

Microsoft Windows Software Development Kit (SDK) for Windows 8.1

Use WinUSB Application template included with Visual Studio (Ultimate or Professional) and Windows Driver Kit (WDK) 8

Note For isochronous transfers, Visual Studio 2013 with Windows Driver Kit (WDK) 8.1
Programming languagesC#, VB.NET, C++, JavaScriptC/C++

Feature implementation

Microcomputer Applications USB Devices Driver
Key scenarioUWP appWindows desktop app
Device discoveryUse Windows.Devices.Enumeration](/uwp/api/Windows.Devices.Enumeration)'>Windows.Devices.Enumeration namespace to get a UsbDevice](/uwp/api/Windows.Devices.Usb.UsbDevice)'>UsbDevice.Use SetupAPI functions and WinUsb_Initialize](/windows/win32/api/winusb/nf-winusb-winusb_initialize)'>WinUsb_Initialize to get a WINUSB_INTERFACE_HANDLE.
USB control transfer
Getting USB descriptorsWinUsb_GetDescriptor](/windows/win32/api/winusb/nf-winusb-winusb_getdescriptor)'>WinUsb_GetDescriptor
Sending USB bulk transfer
Sending USB interrupt transfer
Sending USB isochronous transferNot supported.
Closing the deviceUsbDevice.Close](/uwp/api/Windows.Devices.Usb.UsbDevice#Windows_Devices_Usb_UsbDevice_Close)'>UsbDevice.CloseWinUsb_Free](/windows/win32/api/winusb/nf-winusb-winusb_free)'>WinUsb_Free

Documentation

DocumentationUWP appWindows desktop app
Programming guideTalking to USB devices, start to finishHow to Access a USB Device by Using WinUSB Functions
API referenceWindows.Devices.UsbWinUSB Functions

Microcomputer Applications Usb Devices Driver Windows 7

Related topics





Coments are closed