
Update Usb Mass Storage Device Drivers For Mac
USB Mass Storage Support 1.3.5 is a set of USB Mass Storage Class drivers written by Apple Computer to support USB Mass Storage Class devices. USB includes the notion of Class drivers, a set of software components generally delivered by Operating System vendors that are able to communicate with not just one. Microsoft provides the Usbstor.sys port driver to manage USB mass storage devices with Microsoft's native storage class drivers. For an example device stack that is managed by this driver, see Device Object Example for a USB Mass Storage Device. For information about Windows storage support, see the Storage Technologies website.
Important
This topic is for programmers. If you are a customer experiencing USB problems, see Troubleshoot common USB problems
This topic lists the Microsoft-provided drivers for the supported USB device classes.
- Microsoft-provided drivers for USB-IF approved device classes.
- For composite devices, use USB Generic Parent Driver (Usbccgp.sys) that creates physical device objects (PDOs) for each function.
- For non-composite devices or a function of a composite device, use WinUSB (Winusb.sys).
If you are installing USB drivers: You do not need to download USB device class drivers. They are installed automatically. These drivers and their installation files are included in Windows. They are available in the WindowsSystem32DriverStoreFileRepository folder. The drivers are updated through Windows Update.
If you are writing a custom driver: Before writing a driver for your USB device, determine whether a Microsoft-provided driver meets the device requirements. If a Microsoft-provided driver is not available for the USB device class to which your device belongs, then consider using generic drivers, Winusb.sys or Usbccgp.sys. Write a driver only when necessary. More guidelines are included in Choosing a driver model for developing a USB client driver.
USB Device classes
USB Device classes are categories of devices with similar characteristics and that perform common functions. Those classes and their specifications are defined by the USB-IF. Each device class is identified by USB-IF approved class, subclass, and protocol codes, all of which are provided by the IHV in device descriptors in the firmware. Microsoft provides in-box drivers for several of those device classes, called USB device class drivers. If a device that belongs to a supported device class is connected to a system, Windows automatically loads the class driver, and the device functions with no additional driver required.
Hardware vendors should not write drivers for the supported device classes. Windows class drivers might not support all of the features that are described in a class specification. If some of the device's capabilities are not implemented by the class driver, vendors should provide supplementary drivers that work in conjunction with the class driver to support the entire range of functionality provided by the device.
For general information about USB-IF approved device classes, see the USB Technology website.
For the current list of USB class specifications and class codes, visit the USB DWG website.
Device setup classes
Windows categorizes devices by device setup classes, which indicate the functionality of the device.
Microsoft defines setup classes for most devices. IHVs and OEMs can define new device setup classes, but only if none of the existing classes apply. For more information, see System-Defined Device Setup Classes.
Two important device setup classes for USB devices are as follows:
USBDevice {88BAE032-5A81-49f0-BC3D-A4FF138216D6}: IHVs must use this class for custom devices that do not belong to another class. This class is not used for USB host controllers and hubs.
USB {36fc9e60-c465-11cf-8056-444553540000}: IHVs must not use this class for their custom devices. This is reserved for USB host controllers and USB hubs.
Install U3 on a Sandisk Cruzer Micro. I’ve been very happy with this unit – it easily allows me to take files from one computer to the next, to the u3 micro cruzer I have about 20 thumb drives and bought this one because it was cheap and I did not care if I lost it or it broke. Maybe you just want to break cruzer u3 enemies flash drive? I have a Cruzer Glide, 32GB. Install U3 on a Sandisk Cruzer Micro. Get back deleted or lost files from Toshiba TransMemory 64GB flash drive within few cruaer by reading cruzer u3 page. It takes just moments for first-time users to set up a Skype caller name and password. Remove u3 from usb.
The device setup classes are different from USB device classes discussed earlier. For example, an audio device has a USB device class code of 01h in its descriptor. When connected to a system, Windows loads the Microsoft-provided class driver, Usbaudio.sys. In Device Manager, the device is shown under is Sound, video and game controllers, which indicates that the device setup class is Media.
Microsoft-provided USB device class drivers
| USB-IF class code | Device setup class | Microsoft-provided driver and INF | Windows support | Description |
|---|---|---|---|---|
| Audio (01h) | Media {4d36e96c-e325-11ce-bfc1-08002be10318} | Usbaudio.sys Wdma_usb.inf | Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) Windows 10 Mobile Windows 8.1 Windows 8 Windows 7 Windows Server 2008 Windows Vista | Microsoft provides support for the USB audio device class by means of the Usbaudio.sys driver. For more information, see 'USBAudio Class System Driver' in Kernel-Mode WDM Audio Components. For more information about Windows audio support, see the Audio Device Technologies for Windows website. |
| Communications and CDC Control (02h) | ||||
| Ports {4D36E978-E325-11CE-BFC1-08002BE10318} | Usbser.sys Usbser.inf | Windows 10 for desktop editions Windows 10 Mobile | In Windows 10, a new INF, Usbser.inf, has been added that loads Usbser.sys automatically as the function driver. For more information, see USB serial driver (Usbser.sys) | |
| Modem {4D36E96D-E325-11CE-BFC1-08002BE10318} Note Supports Subclass 02h (ACM) | Usbser.sys Custom INF that references mdmcpq.inf | Windows 10 for desktop editions Windows 8.1 Windows 8 Windows 7 Windows Server 2008 Windows Vista | In Windows 8.1 and earlier versions, Usbser.sys is not automatically loaded. To load the driver, you need to write an INF that references the modem INF (mdmcpq.inf) and includes [Install] and [Needs] sections. Starting with Windows Vista, you can enable CDC and Wireless Mobile CDC (WMCDC) support by setting a registry value, as described in Support for the Wireless Mobile Communication Device Class. When CDC support is enabled, the USB Common Class Generic Parent Driver enumerates interface collections that correspond to CDC and WMCDC Control Models, and assigns physical device objects (PDO) to these collections. | |
| Net {4d36e972-e325-11ce-bfc1-08002be10318} Note Supports Subclass 0Eh (MBIM) | wmbclass.sys Netwmbclass.inf | Windows 10 for desktop editions Windows 8.1 Windows 8 | Starting in Windows 8, Microsoft provides the wmbclass.sys driver, for mobile broadband devices. See, MB Interface Model. | |
| HID (Human Interface Device) (03h) | HIDClass {745a17a0-74d3-11d0-b6fe-00a0c90f57da} | Hidclass.sys Hidusb.sys Input.inf | Windows 10 for desktop editions Windows 10 Mobile Windows 8.1 Windows 8 Windows 7 Windows Server 2008 Windows Vista | Microsoft provides the HID class driver (Hidclass.sys) and the miniclass driver (Hidusb.sys) to operate devices that comply with the USB HID Standard. For more information, see HID Architecture and Minidrivers and the HID class driver. For further information about Windows support for input hardware, see the Input and HID - Architecture and Driver Support website. |
| Physical (05h) | - | - | - | Recommended driver: WinUSB (Winusb.sys) |
| Image (06h) | Image {6bdd1fc6-810f-11d0-bec7-08002be2092f} | Usbscan.sys Sti.inf | Windows 10 for desktop editions Windows 8.1 Windows 8 Windows 7 Windows Server 2008 Windows Vista | Microsoft provides the Usbscan.sys driver that manages USB digital cameras and scanners for Windows XP and later operating systems. This driver implements the USB component of the Windows Imaging Architecture (WIA). For more information about WIA, see Windows Image Acquisition Drivers and the Windows Imaging Component website. For a description of the role that Usbscan.sys plays in the WIA, see WIA Core Components. |
| Printer (07h) | USB Note Usbprint.sys enumerates printer devices under the device set up class: Printer {4d36e979-e325-11ce-bfc1-08002be10318}. | Usbprint.sys Usbprint.inf | Windows 10 for desktop editions Windows 8.1 Windows 8 Windows 7 Windows Server 2008 Windows Vista | Microsoft provides the Usbprint.sys class driver that manages USB printers. For information about implementation of the printer class in Windows, see the Printing - Architecture and Driver Support website. |
| Mass Storage (08h) | ||||
| USB | Usbstor.sys | Windows 10 for desktop editions Windows 10 Mobile Windows 8.1 Windows 8 Windows 7 Windows Server 2008 Windows Vista | Microsoft provides the Usbstor.sys port driver to manage USB mass storage devices with Microsoft's native storage class drivers. For an example device stack that is managed by this driver, see Device Object Example for a USB Mass Storage Device. For information about Windows storage support, see the Storage Technologies website. | |
| SCSIAdapter {4d36e97b-e325-11ce-bfc1-08002be10318} | SubClass (06) and Protocol (62) Uaspstor.sys Uaspstor.inf | Windows 10 for desktop editions Windows 10 Mobile Windows 8.1 Windows 8 | Uaspstor.sys is the class driver for SuperSpeed USB devices that support bulk stream endpoints. For more information see: | |
| Hub (09h) | USB {36fc9e60-c465-11cf-8056-444553540000} | |||
| Usbhub.sys Usb.inf | Windows 10 for desktop editions Windows 10 Mobile Windows 8.1 Windows 8 Windows 7 Windows Server 2008 Windows Vista | Microsoft provides the Usbhub.sys driver for managing USB hubs. For more information about the relationship between the hub class driver and the USB stack, see USB host-side drivers in Windows. | ||
| Usbhub3.sys Usbhub3.inf | Windows 10 for desktop editions Windows 8.1 Windows 8 | Microsoft provides the Usbhub3.sys driver for managing SuperSpeed (USB 3.0) USB hubs. The driver is loaded when a SuperSpeed hub is attached to an xHCI controller. See USB host-side drivers in Windows. | ||
| CDC-Data (0Ah) | - | - | - | Recommended driver: WinUSB (Winusb.sys) |
| Smart Card (0Bh) | SmartCardReader {50dd5230-ba8a-11d1-bf5d-0000f805f530} | |||
| Usbccid.sys (Obsolete) | Windows 10 for desktop editions Windows 7 Windows Server 2008 Windows Vista | Microsoft provides the Usbccid.sys mini-class driver to manage USB smart card readers. For more information about smart card drivers in Windows, see Smart Card Design Guide. Note that for Windows Server 2003, Windows XP, and Windows 2000, special instructions are required for loading this driver because it might have been released later than the operating system. Note Usbccid.sys driver has been replaced by UMDF driver, WUDFUsbccidDriver.dll. | ||
| WUDFUsbccidDriver.dll WUDFUsbccidDriver.inf | Windows 8.1 Windows 8 | WUDFUsbccidDriver.dll is a user-mode driver for USB CCID Smart Card Reader devices. | ||
| Content Security (0Dh) | - | - | - | Recommended driver: USB Generic Parent Driver (Usbccgp.sys). Some content security functionality is implemented in Usbccgp.sys. See Content Security Features in Usbccgp.sys. |
| Video (0Eh) | Image {6bdd1fc6-810f-11d0-bec7-08002be2092f} | Usbvideo.sys Usbvideo.inf | Windows 10 for desktop editions Windows Vista | Microsoft provides USB video class support by means of the Usbvideo.sys driver. For more information, see 'USB Video Class Driver' under AVStream Minidrivers. Note that for Windows XP, special instructions are required for loading this driver because it might have been released later than the operating system. |
| Personal Healthcare (0Fh) | - | - | - | Recommended driver: WinUSB (Winusb.sys) |
| Audio/Video Devices (10h) | - | - | - | - |
| Diagnostic Device (DCh) | - | - | - | Recommended driver: WinUSB (Winusb.sys) |
| Wireless Controller (E0h) Note Supports Subclass 01h and Protocol 01h | Bluetooth {e0cbf06c-cd8b-4647-bb8a-263b43f0f974} | Bthusb.sys Bth.inf | Windows 10 for desktop editions Windows 10 Mobile Windows 8.1 Windows 8 Windows 7 Windows Vista | Microsoft provides the Bthusb.sys miniport driver to manage USB Bluetooth radios. For more information, see Bluetooth Design Guide. |
| Miscellaneous (EFh) | Net {4d36e972-e325-11ce-bfc1-08002be10318} Note Supports SubClass 04h and Protocol 01h | Rndismp.sys Rndismp.inf | Windows 10 for desktop editions Windows 8.1 Windows 8 Windows 7 Windows Vista | Prior to Windows Vista, support for CDC is limited to the RNDIS-specific implementation of the Abstract Control Model (ACM) with a vendor-unique protocol (bInterfaceProtocol) value of 0xFF. The RNDIS facility centers the management of all 802-style network cards in a single class driver, Rndismp.sys. For a detailed discussion of remote NDIS, see Overview of Remote NDIS. The mapping of remote NDIS to USB is implemented in the Usb8023.sys driver. For further information about networking support in Windows, see the Networking and Wireless Technologies website. |
| Application Specific (FEh) | - | - | - | Recommended driver: WinUSB (Winusb.sys) |
| Vendor Specific (FFh) | - | - | Windows 10 for desktop editions Windows 10 Mobile | Recommended driver: WinUSB (Winusb.sys) |
Related topics
The USB mass storage device class (also known as USB MSC or UMS) is a set of computing communications protocols, specifically a USB Device Class, defined by the USB Implementers Forum that makes a USB device accessible to a host computing device and enables file transfers between the host and the USB device. To a host, the USB device acts as an external hard drive; the protocol set interfaces with a number of storage devices.
Uses[edit]
Devices connected to computers via this standard include:
- External magnetic hard drives
- External optical drives, including CD and DVD reader and writer drives
- Portable flash memorydevices
- Adapters between standard flash memory cards and USB connections
- Digital audio and portable media players
Devices supporting this standard are known as MSC (Mass Storage Class) devices. While MSC is the original abbreviation, UMS (Universal Mass Storage) has also come into common use.
Operating system support[edit]
Most mainstream operating systems include support for USB mass storage devices; support on older systems is usually available through patches.
Microsoft Windows[edit]
Microsoft Windows has supported MSC since Windows 2000. There is no support for USB supplied by Microsoft in Windows before Windows 95 and Windows NT 4.0. Windows 95 OSR2.1, an update to the operating system, featured limited support for USB. During that time no generic USB mass-storage driver was produced by Microsoft (including for Windows 98), and a device-specific driver was needed for each type of USB storage device. Third-party, freeware drivers became available for Windows 98 and Windows 98SE, and third-party drivers are also available for Windows NT 4.0. Windows 2000 has support (via a generic driver) for standard USB mass-storage devices; Windows Me and all later Windows versions also include support.
Windows Mobile supports accessing most USB mass-storage devices formatted with FAT on devices with USB Host. However, portable devices typically cannot provide enough power for hard-drive disk enclosures (a 2.5-inch (64 mm) hard drive typically requires the maximum 2.5 W in the USB specification) without a self-powered USB hub. A Windows Mobile device cannot display its file system as a mass-storage device unless the device implementer adds that functionality. However, third-party applications add MSC emulation to most WM devices (commercial Softick CardExport and free WM5torage). Only memory cards (not internal-storage memory) can generally be exported, due to file-systems issues; see device access, below.
The AutoRun feature of Windows worked on all removable media, allowing USB storage devices to become a portal for computer viruses. Beginning with Windows 7, Microsoft limited AutoRun to CD and DVD drives, updating previous Windows versions.[1]
MS-DOS[edit]
Neither MS-DOS nor most compatible operating systems included support for USB. Third-party generic drivers, such as Duse, USBASPI and DOSUSB, are available to support USB mass-storage devices. FreeDOS supports USB mass storage as an Advanced SCSI Programming Interface (ASPI) interface.
Mac OS[edit]
Apple Computer's Mac OS 9 and X support USB mass storage; Mac OS 8.5.1 supported USB mass storage through an optional driver.
Linux[edit]
The Linux kernel has supported USB mass-storage devices since its 2.4 series (2001), and a backport to kernel 2.2.18[2] has been made. In Linux, more features exist in addition to the generic drivers for USB mass-storage device class devices, including quirks, bug fixes and additional functionality for devices and controllers (vendor-enabled functions such as ATA command pass-through for ATA-USB bridges, which is useful for S.M.A.R.T. or temperature monitoring, controlling the spin-up and spin-down of hard disk drives, and other options). This includes a certain portion of Android-based devices, through support USB-OTG, since Android uses the Linux kernel.
Other Unix-related systems[edit]
Solaris has supported devices since its version 2.8 (1998), NetBSD since its version 1.5 (2000), FreeBSD since its version 4.0 (2000) and OpenBSD since its version 2.7 (2000). Digital UNIX (later known as Tru64 UNIX), has supported USB and USB mass-storage devices since its version 4.0E (1998). AIX has supported USB mass-storage devices since its 5.3 T9 and 6.1 T3 versions; however, it is not well-supported and lacks features such as partitioning and general blocking.[3]
Game consoles and embedded devices[edit]
The Xbox 360 and PlayStation 3 support most mass-storage devices for the data transfer of media such as pictures and music. As of April 2010, the Xbox 360 (a) used a mass-storage device for saved games[4] and the PS3 allowed transfers between devices on a mass-storage device. Independent developers have released drivers for the TI-84 Plus and TI-84 Plus Silver Edition to access USB mass-storage devices.[5] In these calculators, the usb8x driver supports the msd8x user-interface application.
Device access[edit]
The USB mass-storage specification provides an interface to a number of industry-standard command sets, allowing a device to disclose its subclass. In practice, there is little support for specifying a command set via its subclass; most drivers only support the SCSI transparent command set, designating their subset of the SCSI command set with their SCSI Peripheral Device Type (PDT). Subclass codes specify the following command sets:
- Reduced Block Commands (RBC)
- SFF-8020i, MMC-2 (used by ATAPI-style CD and DVD drives)
- QIC-157 (tape drives)
- Uniform Floppy Interface (UFI)
- SFF-8070i (used by ARMD-style devices)
- SCSI transparent command set (use 'inquiry' to obtain the PDT)
The specification does not require a particular file system on conforming devices. Based on the specified command set and any subset, it provides a means to read and write sectors of data (similar to the low-level interface used to access a hard drive). Operating systems may treat a USB mass-storage device like a hard drive; users may partition it in any format (such as MBR and GPT), and format it with any file system.
Because of its relative simplicity, the most-common file system on embedded devices such as USB flash drives, cameras, or digital audio players is Microsoft's FAT or FAT32 file system (with optional support for long filenames). Large, USB-based hard disks may be formatted with NTFS, which (except for Windows) is less supported. However, a keydrive or other device may be formatted with another file system (HFS Plus on an Apple Macintosh, or Ext2 on Linux, or Unix File System on Solaris or BSD). This choice may limit (or prevent) access to a device's contents by equipment using a different operating system. OS-dependent storage options include LVM, partition tables and software encryption.
In cameras, MP3 players and similar devices which must access a file system independent of an external host, the FAT32 file system is preferred by manufacturers. All such devices halt their file-system (dismount) before making it available to a host operating system to prevent file-system corruption or other damage (although it is theoretically possible for both devices to use read-only mode or a cluster file system). Some devices have a write-protection switch (or option) allowing them to be used in read-only mode; this makes files available for shared use without the risk of virus infection.
Two main partitioning schemes are used by vendors of pre-formatted devices. One puts the file system (usually FAT32) directly on the device without partitioning, making it start from sector 0 without additional boot sectors, headers or partitions. The other uses a DOS partition table (and MBR code), with one partition spanning the entire device. This partition is often aligned to a high power of two of the sectors (such as 1 or 2 MB), common in solid state drives for performance and durability. Some devices with embedded storage resembling a USB mass-storage device (such as MP3 players with a USB port) will report a damaged (or missing) file system if they are reformatted with a different file system. However, most default-partition devices may be repartitioned (by reducing the first partition and file system) with additional partitions. Such devices will use the first partition for their own operations; after connecting to the host system, all partitions are available.
Devices connected by a single USB port may function as multiple USB devices, one of which is a USB mass-storage device. This simplifies distribution and access to drivers and documentation, primarily for the Microsoft Windows and Mac OS X operating systems. Such drivers are required to make full use of the device, usually because it does not fit a standard USB class or has additional functionality. An embedded USB mass-storage device makes it possible to install additional drivers without CD-ROM disks, floppies or Internet access to a vendor website; this is important, since many modern systems are supplied without optical or floppy drives. Internet access may be unavailable because the device provides network access (wireless, GSM or Ethernet cards). The embedded USB mass storage is usually made permanently read-only by the vendor, preventing accidental corruption and use for other purposes (although it may be updated with proprietary protocols when performing a firmware upgrade). Advantages of this method of distribution are lower cost, simplified installation and ensuring driver portability.
Design[edit]
Some advanced hard disk drive commands, such as Tagged Command Queuing and Native Command Queuing (which may increase performance), ATA Secure Erase (which allows all data on the drive to be securely erased) and S.M.A.R.T. (accessing indicators of drive reliability) exist as extensions to low-level drive command sets such as SCSI, ATA and ATAPI. These features may not work when the drives are placed in a disk enclosure that supports a USB mass-storage interface. Some USB mass-storage interfaces are generic, providing basic read-write commands; although that works well for basic data transfers with devices containing hard drives, there is no simple way to send advanced, device-specific commands to such USB mass-storage devices (though, devices may create their own communication protocols over a standard USB control interface). The USB Attached SCSI (UAS) protocol, introduced in USB 3.0, fixes several of these issues, including command queuing, command pipes for hardware requiring them, and power management.
Specific USB 2.0 chipsets had proprietary methods of achieving SCSI pass-through, which could be used to read S.M.A.R.T. data from drives using tools such as smartctl (using the -d option followed by 'chipset').[6] More recent USB storage chipsets support the SCSI / ATA Translation (SAT) as a generic protocol for interacting with ATA (and SATA) devices.[7] Using esoteric ATA or SCSI pass-through commands (such as secure-erase or password protection) when a drive is connected via a USB bridge may cause drive failure, especially with the hdparm utility.[8]
See also[edit]
References[edit]
- ^MSRCTeam (2009-04-28). 'Changes in Windows to Meet Changes in Threat Landscape'. TechNet Blogs. Retrieved 2012-11-07.
- ^'Driver for USB Mass Storage compliant devices'. Archived from the original on 2005-09-23.
- ^'eserver: HOWTO: JFS2 on USB device on AIX 5.3.11.1'. Eserver.livejournal.com. 2010-01-21. Archived from the original on 2012-03-31. Retrieved 2012-11-07.
- ^'Xbox Live's Major Nelson » USB Memory Support for the Xbox 360 coming April 6th :'. Majornelson.com. 2010-03-26. Retrieved 2012-11-07.
- ^'83Plus:Software:usb8x/Asm Interface/MSD'. WikiTI. 2009-02-18. Retrieved 2012-11-07.
- ^'#25 (SCSI pass through for SMART via USB on MacOSX smartmontools? 3rd party code available!) – smartmontools'. Sourceforge.net. Retrieved 2014-01-21.
- ^'USB smartmontools'. Sourceforge.net. Archived from the original on 2012-02-07. Retrieved 2014-01-21.
- ^'ATA Secure Erase - ata Wiki'. Ata.wiki.kernel.org. 2013-07-22. Retrieved 2014-01-21.
Further reading[edit]
From the USB Implementers Forum website:
External links[edit]
- What actually happens when you plug in a USB device? – Linux kernel internals