ZeroCD_2008_09_25_v1.1
description
Transcript of ZeroCD_2008_09_25_v1.1
Zero-CD Concept Specification
- 1 -
Zero-CD Concept
Specification
1 Table of Contents
Sections
1 Table of Contents ............................................................................................................................ 1 2 Revision History ............................................................................................................................. 3 3 References....................................................................................................................................... 4 4 Introduction..................................................................................................................................... 5 5 Zero-CD Concept............................................................................................................................ 6
5.1 Terminology............................................................................................................................ 6 5.2 Features ................................................................................................................................... 6 5.3 USB Device Attributes............................................................................................................ 7
5.3.1 USB Devices...................................................................................................................7 5.3.2 USB Descriptors ............................................................................................................. 8 5.3.3 UMS CD-ROM.............................................................................................................10
5.4 Switch To 3G Device............................................................................................................10 5.4.1 Switch From Driver ......................................................................................................10 5.4.2 Switch From Application ..............................................................................................11
5.5 Switch To UMS Device ........................................................................................................11 5.6 Mechanism............................................................................................................................12
5.6.1 USB Device And Driver Combinations........................................................................12 5.6.2 State Machine................................................................................................................13 5.6.3 First-time Installation....................................................................................................14 5.6.4 Normal Usage ...............................................................................................................15 5.6.5 Flashback ......................................................................................................................16 5.6.6 ForceUMS.....................................................................................................................17
5.6.6.1 Going into ForceUMS state ......................................................................................17 5.6.6.2 Going out of ForceUMS state ...................................................................................18 5.6.6.3 ForceUMS flag..........................................................................................................19
5.7 Installing And Updating Drivers...........................................................................................20 5.8 Installing Multiple Option Products......................................................................................21 5.9 Interoperability With Other Software ...................................................................................21
5.9.1 GtFlashSwitch...............................................................................................................21 5.10 Pros & Cons ..........................................................................................................................21
5.10.1 Pros ...............................................................................................................................21 5.10.2 Cons ..............................................................................................................................21
5.11 Issues.....................................................................................................................................22 5.11.1 Pop-up Message On Windows 2000.............................................................................22 5.11.2 3G Device In System With Old 3G Driver Set .............................................................22
Tables
Table 1 – Terminology............................................................................................................................ 6
Zero-CD Concept Specification
- 2 -
Table 2 – UMS USB ID.......................................................................................................................... 7 Table 3 – Requirements For The USB Descriptors ................................................................................ 9 Table 4 – Vendor String For INQUIRY ...............................................................................................10 Table 5 – REZERO UNIT ....................................................................................................................10 Table 6 – CBW For REZERO UNIT....................................................................................................10 Table 7 – AT_OMSIDSW ....................................................................................................................11
Figures
Figure 1 – Zero-CD State Machine.......................................................................................................13 Figure 2 – First-time Installation Flow Diagram ..................................................................................14 Figure 3 – Normal Usage Flow Diagram..............................................................................................15 Figure 4 – Flashback Flow Diagram.....................................................................................................16 Figure 5 - Going into ForceUMS Flow Diagram..................................................................................17 Figure 6 - Going out of ForceUMS Flow Diagram...............................................................................18 Figure 7 – Preferred Switch Method Flow Diagram.............................................................................20
Zero-CD Concept Specification
- 3 -
2 Revision History
Date Name Description
2007-06-12 Peter S’heeren � Created.
2007-06-12 Peter S’heeren � First draft.
2007-06-18 Peter S’heeren � Updated according to the meeting of 2007-06-14.
� Added issues.
� Added state machine, based on picture by Jan Heylen.
2007-06-21 Peter S’heeren � Added requirements for the USB descriptors of the three
USB devices.
� Separated the rules for the USB devices as a bulleted list.
2007-07-02 Peter S’heeren � Removed issue GtFlashSwitch.
� Added section interoperability.
� Added section installing and updating, with flow diagram
preferred switch method.
2007-07-06 Peter S’heeren � Renamed INQUIRY DATA to INQUIRY. This is the
official SCSI command name.
� Relaxed the allowable values of the dCBWTag field in the
CBW for the REZERO UNIT SCSI command.
� Relaxed the allowable values for the bcdUSB field in the
USB device descriptors.
� Removed section Requirements.
� Removed section Work Required. � Added section Features.
� Added section References.
� Added tables and figures to section Table Of Contents.
� Final v1.0.
2008-09-25 Jurgen Schrijvers � ForceUMS state added.
Zero-CD Concept Specification
- 4 -
3 References
1. Universal Serial Bus Specification Revision 2.0
April 27, 2000
© 2000 Compaq Computer Corporation, Hewlett-Packard Company, Intel Corporation, Lucent
Technologies Inc, Microsoft Corporation, NEC Corporation, Koninklijke Philips Electronics N.V.
http://www.usb.org/
2. Universal Serial Bus Mass Storage Class Bulk-Only Transport
September 31, 1999
© 1998-1999 USB Implementers’ Forum
http://www.usb.org/
Zero-CD Concept Specification
- 5 -
4 Introduction
This document describes a new Zero-CD concept for use with USB-based Option 3G devices.
The new concept primarily focuses on Windows systems. It may be deployed on other operating
systems as well.
The Zero-CD concept applies to the USB function of the device only. For Option data-cards with an embedded USB host controller, the Zero-CD concept applies to the USB function connected to this
controller.
Zero-CD Concept Specification
- 6 -
5 Zero-CD Concept
5.1 Terminology
In the scope of the next sections, we use the following terminology:
Say Meaning
Device The Option device with Zero-CD support.
UMS USB mass storage.
UMS device The Option device acting as a USB mass storage device.
3G device The Option device acting as a 3G device.
UMS driver The driver for a USB mass storage device, usually system-supplied.
3G drivers
3G driver set The driver set for the 3G device. These drivers are Option-supplied.
3G bus driver The USB bus driver of the 3G driver set. This driver is loaded as the USB function
driver on the USB device.
Clean system A system in which the device hasn’t run setup from the CD-ROM yet.
Installed system A system in which the device has run setup from the CD-ROM successfully.
UMS USB ID Option’s generic USB ID for USB mass storage.
3G USB ID Option product unique USB ID.
Table 1 – Terminology
5.2 Features
The following is a list of features of the Zero-CD concept:
� Works on Windows 2000, Windows XP 32-bit, Windows XP 64-bit, Windows Vista 32-bit, and
Windows Vista 64-bit.
� The device can be installable on multiple Windows systems.
� System stability and known behavior when the device switches from mass storage to 3G
functionality.
� The switch during installation doesn’t result in user-interactivity.
� Once the device is installed on a Windows system, it can be installed and used on another
operating system.
� Once the device is installed on the system, it can be instructed to enumerate as a CD-ROM again
in order to support auto-run of the CD-ROM image. This can be done in 2 ways : through
Flashback and ForceUMS.
� The Zero-CD concept works on systems with limited user rights.
Zero-CD Concept Specification
- 7 -
5.3 USB Device Attributes
5.3.1 USB Devices
The USB function of the device can expose its USB interface in 3 ways:
1. UMS device with UMS USB ID. The UMS device exposes the CD-ROM.
2. UMS device with 3G USB ID. The UMS device exposes the same CD-ROM as 1.
3. 3G device with 3G USB ID.
This implies the device can be one of three different USB devices.
Rules
� When the USB device is physically plugged in, that is, it’s plugged in from the non-powered
state, it’ll always expose the USB mass storage device with the 3G USB ID.
� When the USB mass storage device receives the REZERO UNIT SCSI command (see section 5.4), it’ll re-plug itself without losing power. When it has re-plugged itself, it reports the 3G
device with 3G USB ID.
� When the 3G device receives the AT_OMSIDSW command (see section 5.5), it’ll re-plug itself
without losing power. When it has re-plugged itself, it reports the UMS device with UMS USB
ID.
The UMS USB ID is defined as:
Vendor ID Product ID
0AF0h 1000h
Table 2 – UMS USB ID
Zero-CD Concept Specification
- 8 -
5.3.2 USB Descriptors
When the Windows enumerates a USB device, it reads certain fields from the USB descriptors and
tries to find a match in the registry (matching already installed devices). If no match is found in the
registry, then Windows will try to install the device based on the available .INF files.
The USB subsystem enumerates with 2 levels of priority. These priorities are (listed highest to
lowest):
1. Combination of vendor ID, product ID, device revision, and serial number string (if any).
2. Combination of device class, device subclass, device protocol, interface class, interface subclass,
interface protocol.
Any changes in these combinations make the USB subsystem believe it’s a different device, even if
the same driver is targeted. We have to be very careful building the USB descriptors. Any change that
leads to a re-enumeration will create a new driver installation, even when it targets the same driver.
This may or may not be visible to the user, but it does pollute the registry.
First, the USB subsystem tries to enumerate the device based on the fields of the 1st priority. If it can’t
find any match for this priority, it tries to enumerate following the 2nd priority. Thus, USB identifiers
are a better match than USB class codes.
In the Zero-CD concept, the UMS driver is installed and loaded according to the 2nd
priority, while the
3G driver is installed and loaded according to the 1st priority.
The following table specifies the requirements of the USB descriptors involved in enumeration for
each of the three USB devices. The color codes are:
� Yellow: These fields are part of the 1st priority of enumeration. They match the 3G driver.
� Blue: These fields are part of the 2nd priority of enumeration. They match the UMS driver.
� Green: A field marked green should be the same across the marked USB devices. Doing so
prevents the system from showing up different friendly names, and/or polluting the registry with
different driver installation for the same device.
Zero-CD Concept Specification
- 9 -
USB device→ UMS device
UMS USB ID
UMS device
3G USB ID
3G device
3G USB ID
Driver loaded→
↓Field UMS driver
UMS
driver
3G
driver 3G driver
DEVICE descriptor
bLength 12h 12h 12h
bDescriptorType 01h 01h 01h
0110h 0110h 0110h bcdUSB
0200h 0200h 0200h
bDeviceClass 00h FFh
bDeviceSubClass 00h FFh
bDeviceProtocol 00h FFh
bMaxPacketSize0 40h 40h 40h
idVendor 0AF0h 0AF0h
idProduct 1000h <3G>
bcdDevice 0000h
iManufacturer
iProduct
iSerialNumber
bNumConfigurations 01h 01h 01h
CONFIGURATION descriptor
bLength 09h 09h 09h
bDescriptorType 02h 02h 02h
wTotalLength
02h bNumInterfaces 01h 01h
03h
bConfigurationValue 01h 01h 01h
iConfiguration
bmAttributes
bMaxPower
INTERFACE descriptor #0
bLength 09h 09h 09h
bDescriptorType 04h 04h 04h
bInterfaceNumber 00h 00h 00h
bAlternateSetting 00h 00h 00h
bNumEndpoints 02h 02h 03h
bInterfaceClass 08h FFh
bInterfaceSubClass 06h FFh
bInterfaceProtocol 50h FFh
iInterface
STRING descriptors
Index iManufacturer (if non-zero) <string> <string> <string>
Index iProduct (if non-zero) <string> <string> <string>
Index iSerialNumber (if non-zero) <string> <S/N string>
Index iConfiguration (if non-zero) <string> <string> <string>
Table 3 – Requirements For The USB Descriptors
Notes � White fields that are filled in with numerical values either mandated by the USB specification, or
Option’s current settings.
� White fields left empty have don’t influence the enumeration process.
� Indicator <string> means a UNICODE string stored in a USB string descriptor.
� The value of the bcdUSB field is discussed in section 9.6.1 of the Universal Serial Bus
specification (see reference 1).
Zero-CD Concept Specification
- 10 -
5.3.3 UMS CD-ROM
The vendor string returned in the INQUIRY SCSI command must be the following 8-byte string:
String
ZCOPTION
Table 4 – Vendor String For INQUIRY
GtFlashSwitch isn’t able to detect this vendor string; hence it won’t switch the UMS device to the 3G
device (see section 5.9.1).
5.4 Switch To 3G Device
In order to re-plug the UMS device as 3G device, the 3G bus driver sends a REZERO UNIT SCSI
command. It’s a 6-byte SCSI command:
Data bytes (hexadecimal)
01 00 00 00 00 00
Table 5 – REZERO UNIT
5.4.1 Switch From Driver
The SCSI command is wrapped in a Command Block Wrapper (CBW) as defined in the USB Mass
Storage Class Bulk-Only Transport specification v1.0 (see reference 2). The CBW is a 31-byte data
block.
The 3G bus driver sends the CBW the BULK OUT endpoint of the USB interface of the USB mass storage device. The contents of the CBW are as follows:
Offset Data bytes (hexadecimal)
+00h 55 53 42 43 xx xx xx xx
+08h 01 00 00 00 80 00 06 01
+10h 00 00 00 00 00 00 00 00
+18h 00 00 00 00 00 00 00
Table 6 – CBW For REZERO UNIT
Note: The xx markers represent the dCBWTag field. The value of this can be freely chosen.
There is no need to implement the bulk-only transport mechanism as specified in the USB Mass
Storage specification. The UMS device will accept the CBW right away and perform the switch to the
3G device.
Zero-CD Concept Specification
- 11 -
5.4.2 Switch From Application
When the device is a UMS device with UMS USB ID, the 3G bus driver isn’t involved in switching
the device to 3G device. Instead, the controlling application (updater, installer, …) must send the
REZERO UNIT SCSI command. The application sends the SCSI command to the CD-ROM driver
that controls the UMS device’s CD-ROM.
For an example, look at the source of GtFlashSwitch.
5.5 Switch To UMS Device
In order to perform Flashback, the application sends an AT command that re-plugs the 3G device as UMS device with UMS USB ID. The AT command is defined as follows:
AT command
AT_OMSIDSW
Table 7 – AT_OMSIDSW
This is not a permanent setting. The switch to UMS device with UMS USB ID only happens when
this AT command is sent.
Zero-CD Concept Specification
- 12 -
5.6 Mechanism The next sections specify the various states and transitions of the Zero-CD mechanism.
In the following subsections, the actual value of the 3G USB ID is specified as 0AF0h/<3G>. The
<3G> value differs for the various Option products with Zero-CD support.
5.6.1 USB Device And Driver Combinations
The Zero-CD concept involves the following combinations of USB devices and drivers:
� The USB device reports the 3G USB ID.
� The device exposes the UMS interface.
� The system loads the Microsoft UMS driver.
� The USB device reports the 3G USB ID.
� The device exposes the UMS interface.
� The system loads the Option 3G bus driver and Option UMS
driver.
� The USB device reports the 3G USB ID. � The device exposes the UMS interface.
� The system loads the Option 3G bus driver.
� The USB device reports the 3G USB ID.
� The device exposes the USB 3G interface.
� The system loads the Option 3G bus driver.
� The USB device reports the UMS USB ID.
� The device exposes the UMS interface.
� The system loads the Microsoft UMS driver.
USB ID: 0AF0h/<3G> Device: UMS
Driver: UMS
(Microsoft)
USB ID: 0AF0h/<3G>
Device: UMS
Driver: 3G / UMS
(Option)
USB ID: 0AF0h/<3G>
Device: UMS
Driver: 3G
USB ID: 0AF0h/<3G>
Device: 3G
Driver: 3G
USB ID: 0AF0h/1000h Device: UMS
Driver: UMS
(Microsoft)
Zero-CD Concept Specification
- 13 -
5.6.2 State Machine
Figure 1 – Zero-CD State Machine
The system loads the
3G bus driver for the
UMS device.
The system installs the
Microsoft UMS driver and
detects the CD-ROM in the
UMS device.
The system picks up CD-ROM auto-run and starts setup.
The setup program installs software and updates the 3G
USB ID to the 3G driver set. The system removed the UMS
driver and loads the 3G bus driver.
The user plugs the
device in a clean
system
The user plugs the
device in an installed
system
The application sends the REZERO
UNIT SCSI command. The UMS
device re-plugs itself as 3G device.
Flashback: the application sends the AT_OMSIDSW
command. The device re-plugs itself as UMS device.
The system loads the UMS driver for the device and
runs setup off the CD-ROM if auto-run is present.
ForceUMS
flag state? *
* ForceUMS flag state : Registry key HKLM\SYSTEM\CCS\
Services\GTUHSBUS\ZeroCDForceUMS
set to 0 or not existing : ForceUMS flag is not set
set to 1 : ForceUMS flag is set
ForceUMS flag is set :
The 3G bus driver loads the Option
UMS driver for the device and runs
setup off the CD-ROM if auto-run is
present.
USB ID: 0AF0h/<3G>
Device: 3G
Driver: 3G
USB ID: 0AF0h/1000h
Device: UMS
Driver: UMS (Microsoft)
USB ID: 0AF0h/<3G>
Device: UMS Driver: 3G / UMS (Option)
USB ID: 0AF0h/<3G>
Device: UMS
Driver: 3G
USB ID: 0AF0h/<3G>
Device: UMS
Driver: UMS (Microsoft)
ForceUMS flag is not set
USB ID: 0AF0h/<3G>
Device: UMS
Driver: 3G
Zero-CD Concept Specification
- 14 -
5.6.3 First-time Installation
The device is being installed for the first time on a clean system. The
device is shipped with the 3G USB ID for the mass storage part.
When the user plugs in the device, it will report itself as a USB mass
storage CD-ROM with 3G USB ID.
Windows installs the USB mass storage driver and creates a CD-ROM drive letter in the system. The driver letter is visible in the explorer.
Windows executes the auto-run setup application located on the CD-
ROM. The setup application installs user-mode software. Then it
updates the UMS driver to the 3G driver set.
During the driver update, the UMS driver is unloaded and the 3G bus
driver is loaded instead. See section Error! Reference source not
found. for more information.
The USB 3G bus driver detects the device exposes a USB mass
storage interface. The driver sends the REZERO UNIT SCSI
command to the device. The driver doesn’t create any PDOs; rather it
waits for the removal of the USB mass storage device.
The USB mass storage device receives the REZERO UNIT SCSI command. It unplugs itself from the USB port so the 3G bus driver can
go away. Then the device re-plugs itself as 3G device using the 3G
USB ID.
The system loads the 3G bus driver again. This time, the bus driver
detects the device exposes a 3G interface, so it creates the PDOs. The device is now ready to use as a 3G device.
Figure 2 – First-time Installation Flow Diagram
System: clean
Device: 3G USB ID
Plug in device
USB ID: 0AF0h/<3G>
Device: Mass Storage
Driver loaded
Driver: Mass Storage
Autorun App
� Installs software � Updates 3G USB ID to
3G driver set
Device replugs
USB ID: 0AF0h/<3G>
Device: 3G
Driver loaded
Driver: 3G
3G driver
� Detects mass storage
� Switches USB device
Driver loaded
Driver: 3G
Zero-CD Concept Specification
- 15 -
5.6.4 Normal Usage
The user plugs in the device in an already installed system. This is
normal usage of the 3G device.
The device exposes its USB interface as a UMS device. With 3G
USB ID.
Since the setup has installed the 3G drivers for the 3G USB ID, the
system will load the 3G bus driver.
The USB 3G bus driver checks the ForceUMS flag state through the
Registry key KLM\SYSTEM\CCS\
Services\GTUHSBUS\ZeroCDForceUMS. The key is set to 0 or does
not exist, so theForceUMS flag is not set.
The driver sends the REZERO UNIT SCSI command to the device.
The driver doesn’t create any PDOs; rather it waits for the removal of
the UMS device.
The UMS device receives the REZERO UNIT SCSI command. It
unplugs itself from the USB port so the 3G bus driver can go away.
Then the device re-plugs itself as 3G device using the 3G USB ID.
The system loads the 3G bus driver again. This time, the bus driver
detects the device exposes a 3G interface, so it creates the PDOs. The
device is now ready to use as a 3G device.
Figure 3 – Normal Usage Flow Diagram
System: installed
Device: 3G USB ID
Plug in device
USB ID: 0AF0h/<3G>
Device: UMS
Driver loaded
Driver: 3G
3G driver � Detects UMS
� Switches USB device
Device replugs USB ID: 0AF0h/<3G>
Device: 3G
Driver loaded
Driver: 3G
Check ForceUMS flag
HKLM\SYSTEM\CCS\ Services\GTUHSBUS\
ZeroCDForceUMS is set to
0 or does not exist
Zero-CD Concept Specification
- 16 -
5.6.5 Flashback
When software writes a new CD-ROM image to the device, it needs to
force the system to auto-run the new CD-ROM image on the device.
This is called Flashback.
Suppose the device is operational as a 3G device. The 3G driver set is
loaded and all ports are available.
The software sends the AT_OMSIDSW command to re-plug the
device as USB mass storage device with UMS USB ID.
The device reports itself as a USB mass storage CD-ROM with UMS
USB ID.
Figure 4 – Flashback Flow Diagram
Flashback System: Installed Device: 3G USB ID
Device replugs USB ID: 0AF0h/1000h Device: Mass Stora ge
Flashback App � Sends AT_OMSIDSW
Device plugged in USB ID: 0AF0h/<3G> Device: 3G
Driver loaded Driver: 3G
Zero-CD Concept Specification
- 17 -
5.6.6 ForceUMS
5.6.6.1 Going into ForceUMS state
The drivers are installed on the system.
An application sets the ForceUMS flag by setting the Registry key
HKLM\SYSTEM\CCS\Services\ GTUHSBUS\ZeroCDForceUMS to 1.
The user (re)plugs in the device in order trigger the ForceUMS state
check.
The device exposes its USB interface as a UMS device with 3G USB
ID and the Option 3G bus driver gets loaded.
The Option 3G bus driver checks the ForceUMS flag state through
the Registry key HKLM\SYSTEM\CCS\
Services\GTUHSBUS\ZeroCDForceUMS. The key is set to 1, so the
ForceUMS flag is set.
The 3G USB bus driver creates an UMS PDO.
The 3G bus driver and UMS driver from Option are loaded. The
device appears as a CD-ROM.
Figure 5 - Going into ForceUMS Flow Diagram
System: installed
Device: 3G USB ID
Set ForceUMS flag
Set HKLM\SYSTEM\
CCS\Services\
GTUHSBUS\ZeroCD
ForceUMS to 1
to 1
Plug in device USB ID: 0AF0h/<3G>
Device: UMS
Check ForceUMS flag
HKLM\SYSTEM\CCS\
Services\GTUHSBUS\
ZeroCDForceUMS
is set to 1.
3G driver � Detects UMS
� Loads Option UMS
driver
Driver loaded
Driver: 3G
Driver loaded
Option 3G bus driver and
Option UMS drivers
Zero-CD Concept Specification
- 18 -
5.6.6.2 Going out of ForceUMS state
The drivers are installed on the system. The Option 3G bus driver
and Option UMS driver are installed and the device appears as a CD-
ROM.
An application clears the ForceUMS flag by setting the Registry key
HKLM\SYSTEM\CCS\Services\
GTUHSBUS\ZeroCDForceUMS to 0.
The user (re)plugs in the device or the Option 3G bus driver gets
reloaded in order trigger the ForceUMS state check.
The device exposes its USB interface as a UMS device with 3G USB
ID and the Option 3G bus driver gets loaded.
The Option 3G bus driver checks the ForceUMS flag state through
the Registry key HKLM\SYSTEM\CCS\
Services\GTUHSBUS\ZeroCDForceUMS. The key is set to 0, so the
ForceUMS flag is not set.
The Option sends the REZERO UNIT SCSI command to the device. The driver doesn’t create any PDOs; rather it waits for the removal of
the UMS device.
The UMS device receives the REZERO UNIT SCSI command. It
unplugs itself from the USB port so the 3G bus driver can go away.
Then the device re-plugs itself as 3G device using the 3G USB ID.
The system loads the 3G bus driver again. This time, the bus driver
detects the device exposes a 3G interface, so it creates the PDOs. The
device is now ready to use as a 3G device.
Figure 6 - Going out of ForceUMS Flow Diagram
System: installed
Device: 3G USB ID
Clear ForceUMS flag Set HKLM\SYSTEM\
CCS\Services\
GTUHSBUS\ZeroCD ForceUMS to 0
to 1
Plug in device or reload
3G driver
USB ID: 0AF0h/<3G>
Device: UMS
Check ForceUMS flag
HKLM\SYSTEM\CCS\
Services\GTUHSBUS\
ZeroCDForceUMS
is set to 0.
Driver loaded Driver: 3G
3G driver � Detects UMS
� Switches USB device
Device replugs
USB ID: 0AF0h/<3G>
Device: 3G
Driver loaded
Driver: 3G
Zero-CD Concept Specification
- 19 -
5.6.6.3 ForceUMS flag
The following rules apply to the ForceUMS flag :
1. The flag is represented by a DWORD Registry key :
HKLM\SYSTEM\CCS\Services\GTUHSBUS\ZeroCDForceUMS.
2. Flag states :
- set : Registry key is set to 1
- not set : Registry key is set to 0 / Registry key is not set to 0 or 1 / Registry key does
not exist.
3. Registry key access rules :
- When the Registry key does not exist, it may only be created by the Option 3G bus
driver, ie. at installation time of the Option 3G driver the key gets created and initialised to 0. The Registry may not be created by an application (connection
manager, (un)installer, other, …).
- When the Registry key exists, its value will not be changed by any Option driver. It
is the responsibility of an application to write to it (0 or 1).
4. In order to let the Option 3G bus driver check the ForceUMS flag, the following scenarios
exist :
- The device is (re)plugged into an installed system.
- The Option 3G bus driver gets reloaded when the device is in the ForceUMS state.
Zero-CD Concept Specification
- 20 -
5.7 Installing And Updating Drivers During installation, the set-up program must pre-installs the 3G driver set. Doing so will not unload
the UMS driver and load the 3G driver though; the USB device stays plugged in during installation,
hence the set-up program has to trigger the switch to 3G driver.
It’s important to know whether the set-up program is running from the CD-ROM or from another
storage location. If it’s running from the CD-ROM, then the process will have one or more references
to the CD-ROM. In that case, the system may refuse to perform certain actions on the USB device.
The switch can be performed in various ways:
� Call the UpdateDriverForPlugAndPlayDevices() function for the 3G USB ID. The UMS driver is
unloaded and the 3G driver is loaded. This function may fail due to references to the CD-ROM.
� Disable and enable the USB device based on the 3G USB ID. Doing so will safely remove the
CD-ROM. This counts as a re-plug of the USB device. The UMS driver is unloaded and the 3G
driver is loaded. This may fail due to references to the CD-ROM.
� Send the REZERO UNIT SCSI command to the UMS device. This will always work. However,
Windows 2000 will show a pop-up message.
The following flow diagram shows the preferred switch method.
Update the UMS driver to the 3G driver by calling the function
UpdateDriverForPlugAndPlayDevices().
Check whether the UMS device is still present. If it’s gone, then the
switch has taken place.
Disable and enable the UMS device.
Check whether the UMS device is still present. If it’s gone, then the
switch has taken place.
Send the REZERO UNIT SCSI command. The UMS device will switch
to the 3G device.
Figure 7 – Preferred Switch Method Flow Diagram
Yes
Yes
No
Done
UMS device present?
Update driver
Disable UMS
device
Send REZERO
UNIT SCSI command
Enable UMS
device
UMS device
present?
No
Zero-CD Concept Specification
- 21 -
5.8 Installing Multiple Option Products The 3G driver set is installed when you plug in the first Option product. The 3G driver set supports
many USB product IDs. When you plug in a second Option product that is supported by the 3G driver
set of the first product, Windows will install the 3G driver instead of the UMS driver. As a result, the
CD-ROM is not accessible and the set-up application isn’t run.
A possible solution is to add a (re-)installation feature to the connection manager (see section Error!
Reference source not found.).
5.9 Interoperability With Other Software
5.9.1 GtFlashSwitch
Option devices that support the old Zero-CD concept need the GtFlashSwitch service to perform the
switch from UMS device to 3G device. GtFlashSwitch detects the arrival of UMS devices based on
the vendor string returned by the INQUIRY SCSI command. Option uses the following vendor
strings: OPTION and GT.
The new Zero-CD concept requires that the vendor string is ZCOPTION (see section 5.3.3).
GtFlashSwitch will never detect the arrival of an Option product with this vendor string.
5.10 Pros & Cons
5.10.1 Pros
� Stability: When the 3G bus driver switches the device from mass storage to 3G, the bus driver is
surprise-removed and reloaded. Doing so is stable on all supported Windows platforms.
� Windows 2000: When the device is switched from CD-ROM to 3G, the system doesn’t show a
pop-up window. That’s because the 3G bus driver marks itself as safe for surprise-removal; hence
the system doesn’t complain when the device re-plugs itself.
� The switch from USB mass storage to 3G happens very quickly. The switch-time takes about half
a second to two seconds, depending on the Windows version.
5.10.2 Cons
� The Zero-CD concept is not entirely product-based; it may not work for multiple Option products
that support Zero-CD. That is because the 3G driver set is installed when you plug in the first
Option product. The 3G driver set supports many USB product IDs. When you plug in a second
Zero-CD Concept Specification
- 22 -
Option product that is supported by the 3G driver set of the first product, Windows will install the
3G driver instead of the UMS driver; the CD-ROM is not accessible.
5.11 Issues
5.11.1 Pop-up Message On Windows 2000
When the device is the UMS device with UMS USB ID, the controlling application (updater, installer,
…) sends the REZERO UNIT SCSI command in order to switch back to 3G device. At this point, the
UMS driver is surprise-removed and Windows 2000 will show a pop-up message. This happens
because the usbstor.sys driver clears the safe-removal flag in its capabilities.
Possible solutions: � The controlling application kills the pop-up message. This may be language-dependent.
5.11.2 3G Device In System With Old 3G Driver Set
When a user plugs the 3G device in a system with an old 3G driver set installed that matches the
device’s 3G USB ID, the installed 3G bus driver won’t send the REZERO UNIT SCSI command. It
rather will fail the initialization so the properties window in the device manager will show error code
10.
Possible solutions: � Deliver a driver updater to affected users.