ZeroCD_2008_09_25_v1.1

22
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

description

Zero

Transcript of ZeroCD_2008_09_25_v1.1

Page 1: 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

Page 2: ZeroCD_2008_09_25_v1.1

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

Page 3: ZeroCD_2008_09_25_v1.1

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.

Page 4: ZeroCD_2008_09_25_v1.1

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/

Page 5: ZeroCD_2008_09_25_v1.1

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.

Page 6: ZeroCD_2008_09_25_v1.1

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.

Page 7: ZeroCD_2008_09_25_v1.1

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

Page 8: ZeroCD_2008_09_25_v1.1

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.

Page 9: ZeroCD_2008_09_25_v1.1

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).

Page 10: ZeroCD_2008_09_25_v1.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.

Page 11: ZeroCD_2008_09_25_v1.1

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.

Page 12: ZeroCD_2008_09_25_v1.1

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)

Page 13: ZeroCD_2008_09_25_v1.1

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

Page 14: ZeroCD_2008_09_25_v1.1

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

Page 15: ZeroCD_2008_09_25_v1.1

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

Page 16: ZeroCD_2008_09_25_v1.1

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

Page 17: ZeroCD_2008_09_25_v1.1

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

Page 18: ZeroCD_2008_09_25_v1.1

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

Page 19: ZeroCD_2008_09_25_v1.1

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.

Page 20: ZeroCD_2008_09_25_v1.1

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

Page 21: ZeroCD_2008_09_25_v1.1

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

Page 22: ZeroCD_2008_09_25_v1.1

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.