Professional Documents
Culture Documents
0 Specification
Chapter 9
USB Device Framework
Macpaul Lin
1 USB 2.0 Specification - Chapter 9 -
Device Framework
Disclaim
ll the materials of this sli!e is onl" a !irective work #ase on
the materials liste! in $eference.
%he purpose of this sli!e is for knowle!&e sharin& an! for
people un!erstan!in& USB stan!ar! easier.
Most of the material of the Cop"ri&ht shoul! #elon& to Universal Serial Bus
Specification Cop"ri&ht ' 2000( Compa) Computer Corporation( *ewlett+
,ackar! Compan"( -ntel Corporation( Lucent %echnolo&ies -nc( Microsoft
Corporation( ./C Corporation( 0oninkli1ke ,hilips /lectronics ..2. ll ri&hts
reserve!.
%he !irective work part shoul! #e use! as Creative Commons license 3.0
4B5+.C+S6.
For !istri#utin& this sli!e( the Disclaim an! $eference shoul! #e inclu!e! in
the !istri#ution.
USB 2.0 Specification - Chapter 9 -
Device Framework
2
$eference
USB 2.0 specification
http788www.us#.or&8!evelopers8!ocs8us#92090:0;;2.<ip
USB in a .utshell
http788www.#e"on!lo&ic.or&8us#nutshell8us#;.shtml
USB 2.0 Specification - Chapter 9 -
Device Framework
3
=utline
9.; USB Device States
9.2 >eneric USB Device =perations
9.3 USB Device $e)uests
9.? Stan!ar! Device $e)uests
9.@ Descriptors
9.: Stan!ar! USB Descriptor Definitions
9.A Device Class Definitions
4 USB 2.0 Specification - Chapter 9 -
Device Framework
=verview
USB 2.0 Specification - Chapter 9 -
Device Framework
9.1 US !evice States
9.;.; 2isi#le Device States
9.;.2 BUS /numeration
! USB 2.0 Specification - Chapter 9 -
Device Framework
9.;.; 2isi#le Device States
" USB 2.0 Specification - Chapter 9 -
Device Framework
9.;.; 2isi#le Device States
Attached
9 USB 2.0 Specification - Chapter 9 -
Device Framework
9.;.; 2isi#le Device States
"owered
10 USB 2.0 Specification - Chapter 9 -
Device Framework
9.;.; 2isi#le Device States
"owered
%"pe
Self+,owere!
Bus+powere!
Both self+powere! or #us+powere! !evices
the" wonBt #e consi!ere! to #e in the
,owere! state until the" are attache! to
the USB an! 2BUS is applie! to the
!evice.
11 USB 2.0 Specification - Chapter 9 -
Device Framework
9.;.; 2isi#le Device States
"owered
Device
!efault
!evice reset
!evice speed
!evice behavior
)onfigured
Suspended
Suspen!8Selective suspen!.
$esume
-s not confi&ure!
D,ollin&.E
D-n!ication.E
6igure 3&12. Transfers for
)ommunication 6lows
35 USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.: $e)uest ,rocessin&
Device
-nterface
/n!point.
43 USB 2.0 Specification - Chapter 9 -
Device Framework
9.-.5.2 Standard !evice
0e+uests
54 USB 2.0 Specification - Chapter 9 -
Device Framework
9.1 US !evice 0e+uests
Setup !ata
9.1.1 bm0e+uestType
Direction
%"pe
$ecipient
Direction
0 for =U% en!point( ; for -. en!point.
Control ,ipe7
Shoul! #e set to 0.
9.1.2
wInde8
-t is use! to
pass a
parameter to
the !evice(
specific to
the re)uest.
For -nterface
Case
-nterface .um#er
A : @ ? 3 2 ; 0
#m$e)u
est%"pe
#$e)ues
t
w2alue w-n!eC wLen&th
0 ; 2 3 ? @ : A
bytes
$eserve! D$eset to KeroE
;@ ;? ;3 ;2 ;; ;0 9 H
bits
5" USB 2.0 Specification - Chapter 9 -
Device Framework
9.1 US !evice 0e+uests
9.1.3 w9ength
%his fiel! specifies the len&th of the !ata transferre! !urin& the secon! phase
of the control transfer.
=n an input re)uest( a !evice must never return more !ata than is in!icate! #" the wLen&th
valueL it ma" return less.
=n an output re)uest( wLen&th will alwa"s in!icate the eCact amount of !ata to #e sent #" the
host.
59 USB 2.0 Specification - Chapter 9 -
Device Framework
9.2 Standard !evice
0e+uests
USB !evices must respon! to stan!ar!
!evice re)uests( even if the !evice has
not "et #een assi&ne! an a!!ress or
has not #een confi&ure!.
0 USB 2.0 Specification - Chapter 9 -
Device Framework
9.2 Standard !evice
0e+uests
1 USB 2.0 Specification - Chapter 9 -
Device Framework
9.2 Standard !evice
0e+uests
ClearFeatureDE
re)uest that
references
a feature
or an interface or
en!point that !oes
not eCist
!efault state:
;ot specified.
Address state:
7alid
references to
interfaces or to
en!points other
than en!point <ero
shall cause the
!evice to respon!
with a $e)uest
/rror.
)onfigured
state:
7alid.
5 USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.- /et )onfiguration
%his re)uest returns the current !evice
confi&uration value.
Data
Confi&2al
ue
Direction
0CH0
>/%9
C=.F->
;7 D+to+
*
07 Device
Kero
0
Kero
0
=ne
;
H
#m$e)u
est%"pe
#$e)ues
t
w2alue w-n!eC wLen&th
0 ; 2 3 ? @ : A
bytes
USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.1 /et )onfiguration
-f the returne! value
is <ero( the !evice is
not confi&ure!.
!efault state:
;ot specified.
Address state:
The value <ero must be
returned.
)onfigured state:
%he non+<ero
bConfigurationValue of the
current configuration must
be returned.
! USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.1 /et !escriptor
%his re)uest returns the current !evice
confi&uration value.
Data
Descripto
r
Direction
0CH0
>/%
D/SC$-,%
=$
;7 D+to+
*
07 Device
Descriptor %"pe D*-E
an!
Descriptor -n!eC
DL=E
Kero or Lan&ua&e -D
D9.:.AE
Descriptor Len&th
: *i&h #"te7 Descriptor
%"pes
;7 D/2-C/
27 C=.F->U$%-=.
37 S%$-.>
?7 -.%/$FC/
@7 /.D,=-.%
:7 D/2-C/9MUL-F-/$
A7 =%*/$9S,//D9C=.F->
H7 -.%/$FC/9,=F/$
Low B"te7 Descriptor
-n!eC
Strin& Descriptors7
Lan&ua&e -D
=thers7 Kero
%he num#er of #"tes to
return.
#m$e)u
est%"pe
#$e)ues
t
w2alue w-n!eC wLen&th
0 ; 2 3 ? @ : A
bytes
" USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.1 /et !escriptor
w2alue7
w-n!eC
wLen&th
%he en!point !escriptors for the first interface follow the first interface !escriptor.
!efault state:
%his is a vali!
re)uest when the
!evice is in the
Default state.
Address state:
%his is a vali!
re)uest when the
!evice is in the
!!ress state.
)onfigured
state:
%his is a vali!
re)uest when the
!evice is in the
Confi&ure! state.
!3 USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.2 /et Interface
%his re)uest returns the selecte!
alternate settin& for the specifie!
interface.
Data
lternate
Settin&
Direction
0CH;
>/%
-nterface
;7 D+to+
*
;7
-nterface
Kero
0
-nterface
n
=ne
;
;0
#m$e)u
est%"pe
#$e)ues
t
w2alue w-n!eC wLen&th
0 ; 2 3 ? @ : A
bytes
!4 USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.2 /et Interface
-f the interface
specifie! !oes not
eCist( then the
!evice respon!s
with a $e)uest
/rror.
!efault state:
Device #ehavior
when this re)uest
is receive! while
the !evice is in the
Default state is not
specifie!.
Address state:
$e)uest /rror
response is &iven
#" the !evice.
)onfigured
state:
2ali!.
!5 USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.3 /et Status
%his re)uest returns status for the specifie!
recipient.
%he !ata returne! is the current status of the specifie!
recipient.
Data
Device( -nterface( or
/n!point Status
Direction >/%
S%%US
;7 D+to+
*
07 Device
;7
-nterface
27
/n!point
Kero
0
Kero -nterface
/n!point
0
%wo
2
0
#m$e)u
est%"pe
#$e)ues
t
w2alue w-n!eC wLen&th
0 ; 2 3 ? @ : A
bytes
! USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.3 /et Status
-f an interface or
an en!point is
specifie! that !oes
not eCist( then the
!evice respon!s
with a $e)uest
/rror.
!efault state:
Device #ehavior
when this re)uest
is receive! while
the !evice is in the
Default state is not
specifie!.
Address state:
-f an interface or
an en!point other
than en!point <ero
is specifie!( then
the !evice
respon!s with a
$e)uest /rror.
)onfigured
state:
-f an interface or
en!point that !oes
not eCist is
specifie!( then the
!evice respon!s
with a $e)uest
/rror.
!! USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.3 /et Status
Self ,owere!
$emote Fakeup
Fhen set #" the SetFeatureDE re)uest( the en!point eChi#its the same
stall #ehavior as if the fiel! ha! #een set #" a har!ware con!ition.
$eserve! D$eset to KeroE
;@ ;? ;3 ;2 ;; ;0 9 H
A : @ ? 3 2 ; 0
$eserve! D$eset to KeroE *alt
6igure 9&5# !ATA returned by ,ndpoint 07 .ormal
;7 *alte!
"0 USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.3 /et Status
Clear *alt
-f the con!ition causin& a halt has #een remove!( clearin& the
!alt feature "ia a ClearFeatureD/.D,=-.%9*L%E re)uest
results in the en!point no lon&er returnin& a S%LL.
For en!points usin& !ata to&&le( re&ar!less of whether an
en!point has the !alt feature set, a
ClearFeatureD/.D,=-.%9*L%E re)uest alwa"s results in the
!ata to&&le #ein& reinitiali<e! to D%0.
%he !alt feature is reset to zero after either a
SetConfiguration# or Set$nterface# re%uest e"en if the
re)ueste! confi&uration or interface is the same as the current
confi&uration or interface.
"1 USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.3 /et Status
-t is neither re)uire! nor recommen!e! that
the !alt feature be implemented for the
&efault Control Pipe.
*owever( !evices ma" set the !alt feature of the
&efault Control Pipe in order to reflect a functional
error con!ition.
-f the feature is set to one( the !evice will return S%LL
in the Data an! Status sta&es of each stan!ar!
re)uest to the pipe eCcept >etStatusDE( SetFeatureDE(
an! ClearFeatureDE re)uests.
%he !evice nee! not return S%LL for class+specific
an! ven!or+specific re)uests.
"2 USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.5 Set Address
%his re)uest sets the !evice a!!ress for all future !evice
accesses.
%he w2alue fiel! specifies the !evice a!!ress to use for all
su#se)uent accesses.
Data
.one
Direction
0
S/%
DD$/S
S
07 *+to+
D
07 Device
Device
!!ress
Kero
0
ero
!
@
#m$e)u
est%"pe
#$e)ues
t
w2alue w-n!eC wLen&th
0 ; 2 3 ? @ : A
bytes
"3 USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.5 Set Address
)heck 9.-.5.1
"! USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.5 Set Address
!efault state:
Address state:
)onfigured state:
.ot Specifie!.
"" USB 2.0 Specification - Chapter 9 -
Device Framework
9.2.* Set )onfiguration
%he lower #"te of the w2alue fiel! specifies the !esire! confi&uration.
!efault state:
.ot specifie!.
Address state:
)onfigured state:
-f the specifie!
confi&uration value is
<ero( then the !evice
enters the !!ress
state.
-f the specifie!
confi&uration value
matches the
confi&uration value
from a confi&uration
!escriptor( then that
confi&uration is
selecte! an! the !evice
remains in the
Confi&ure! state.
w2alue
Strin& Descriptors
class or ven!or specification will !efine the appropriate wa" to retrieve these
!escriptors.
109 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5 Standard US
!escriptor !efinitions
9.5.1 !evice !escriptor
9.5.- !evice?@ualifier !escriptor
9.5.1 )onfiguration !escriptor
9.5.2 .ther?Speed?)onfiguration !escriptor
9.5.3 Interface !escriptor
9.5.5 ,ndpoint !escriptor
9.5.5 String !escriptor
110 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5 Standard US
!escriptor !efinitions
113 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.1 !evice !escriptor
iManufac
turer
i,ro!uct i!,ro!uct #c!Device i!2en!or
H 9 ;0 ;; ;2 ;3 ;? ;@
bytes
#Len&th
0C;2
#Descripto
r
%"pe
#c!USB #Device
Class
#MaC
,acketSi<e
0
0 ; 2 3 ? @ : A
bytes
bDevice
Sub&lass
bDevice
'rotocol
.um#er
0C;2
Device
;
2ersion .um#er
02GG*
Class
co!e
Su#Class
Co!e
,rotocol Si<eFor/
,0
DH(;:(32(
:?E
iSerial
.um#er
#.um
Confi&s
;: ;A bytes
2en!or -D ,ro!uct -D Device release
.um#er
-n!eC of
strin&
Desc
-n!eC of
strin&
Desc
114 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.1 !evice !escriptor
#s!USB
%he D/2-C/ !escriptor of a hi&h+spee! capa#le !evice
has a version num#er of 2.0 D0200*E.
%he value of the #c!USB fiel! is 0CSSM. for version SS.M.. DSS T ma1or version
num#er( M T minor version num#er( . T su#+minor version num#erE( e.&.(
version 2.;.3 is represente! with value 0C02;3 an! version 2.0 is
represente! with a value of 0C0200.
115 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.1 !evice !escriptor
#DeviceClass
Kero
%his value i!entifies the class !efinition use! for the a&&re&ate
interfaces.
0CFF
12! USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.1 )onfiguration
!escriptor
.um#er
0C09
Confi&urati
on
0C02
.um#er .um#er .um#er -n!eC ttri#ute
s
bytes
#Len&th
#Descripto
r
%"pe
w%otalLen&th #.um#e
r
-nterface
s
#Confi&
2alue
iConfi& #mttri#
0 ; 2 3 ? @ : A
DA7
$eserve
! DSet to
;E
D:7
Self+
powere!
D@7
$emote
Fakeup
D?+07
$eserve
!
Dreset to
0E
,ower
#MaC
,ower
DmE
H
12" USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.1 )onfiguration
!escriptor
-nterface
%he !escriptor !escri#es the num#er of interfaces provi!e!
#" the confi&uration.
For eCample(
!evice confi&uration that uses power from the #us an! a local
source reports a non+<ero value in #MaC,ower to in!icate the
amount of #us power re)uire! an! sets D:.
13 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.2
.ther?Speed?)onfigurati
on !escriptor
.um#er
0C09
=ther9Spee
!
0C0A
.um#er .um#er .um#er -n!eC ttri#ute
s
bytes
#Len&th
#Descripto
r
%"pe
w%otalLen&th #.um#e
r
-nterface
s
#Confi&
2alue
iConfi& #mttri#
0 ; 2 3 ? @ : A
DA7
$eserve
! DSet to
;E
D:7
Self+
powere!
D@7
$emote
Fakeup
D?+07
$eserve
!
Dreset to
0E
,ower
#MaC
,ower
DmE
H
13! USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.3 Interface
!escriptor
%he interface !escriptor !escri#es a specific interface
within a confi&uration.
confi&uration provi!es one or more interfaces( each with <ero or
more en!point !escriptors !escri#in& a uni)ue set of en!points
within the confi&uration.
Fhen a confi&uration supports more than one interface( the
en!point !escriptors for a particular interface follow the interface
!escriptor in the !ata returne! #" the >etConfi&urationDE re)uest.
n interface !escriptor is alwa"s returne! as part of a confi&uration
!escriptor.
-nterface !escriptors cannot #e !irectl" accesse! with a
>etDescriptorDE or SetDescriptorDE re)uest.
13" USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.3 Interface
!escriptor
USB in a .utShell( http788www.#e"on!lo&ic.or&8us#nutshell8us#@.shtml
139 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.3 Interface
!escriptor
n interface !escriptor is alwa"s
returne! as part of a confi&uration
!escriptor.
-nterface !escriptors cannot #e !irectl"
accesse! with a >etDescriptorDE or
SetDescriptorDE re)uest.
140 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.3 Interface
!escriptor
141 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.3 Interface
!escriptor
-n!eC
i-nterfac
e
H
bytes
0 ; 2 3 ? @ : A
#Len&th
#Descripto
r
%"pe
#-nterfac
e
.um#er
#.um
/n!point
s
#-nterfac
e
Class
#-nterfac
e
Su#Class
#-nterfac
e
,rotocol
#lternat
e
Settin&
.um#er
0C09
-nterface
0C0?
.um#er .um#er Class Su#Class ,rotocol .um#er
142 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.3 Interface
!escriptor
lternate Settin&s
n interface ma" inclu!e alternate settin&s that
allow the en!points an!8or their characteristics to #e
varie! after the !evice has #een confi&ure!.
%he !efault settin& for an interface is alwa"s
alternate settin& <ero.
%he Set-nterfaceDE re)uest is use! to select an
alternate settin& or to return to the !efault settin&.
%he >et-nterfaceDE re)uest returns the selecte!
alternate settin&.
143 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.3 Interface
!escriptor
lternate Settin&s
lternate settin&s allow a portion of the !evice
confi&uration to #e varie! while other
interfaces remain in operation.
-f a confi&uration has alternate settin&s for
one or more of its interfaces( a separate
interface !escriptor an! its associate!
en!points are inclu!e! for each settin&.
144 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.3 Interface
!escriptor
lternate Settin&s
-f a !evice confi&uration supporte! a sin&le interface
with two alternate settin&s( the confi&uration !escriptor
woul! #e followe! #"
150 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.5 ,ndpoint
!escriptor
bytes
0 ; 2 3 ? @ :
#Len&th
#Descripto
r
%"pe
#/n!poi
nt!!res
s
wMaC,acketSi<e #-nterval
#mttri#ut
es
.um#er
0C09
/n!point
0C0@
/n!point .um#er .um#er .um#er
/n!point .um#er Directio
n
$eserve! D$eset to KeroE
A : @ ? 3 2 ; 0
07 =U%
;7 -.
(eserved )(eset to ero*
%ransfer %"pe Usa&e %"pe
A : @ ? 3 2 ; 0
S"nchroni<ation
%"pe
007 Control
0;7 -sochronous
;07 Bulk
;;7 -nterrupt
007 .o
S"nchroni<ation
0;7 s"nchronous
;07 !aptive
;;7 S"nchronous
007 Data en!point
0;7 Fee!#ack
en!point
;07 -mplicit
Fee!#ack
;;7 $eserve!
.ot <ero onl" for isochronous transfers
151 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.5 ,ndpoint
!escriptor
bytes
0 ; 2 3 ? @ :
#Len&th
#Descripto
r
%"pe
#/n!poi
nt!!res
s
wMaC,acketSi<e #-nterval
#mttri#ut
es
.um#er
0C09
/n!point
0C0@
/n!point .um#er .um#er .um#er
A : @ ? 3 2 ; 0
+a,imum 'ac-et Si#e )in bytes*
w4AA"acketSi<e
$eserve! D$eset to KeroE
;@ ;? ;3 ;2 ;; ;0 9 H
!!itional
%ransaction
MaCimum ,acket Si<e Din
#"tesE
007 .one
D;
%ransaction8microfra
meE
0;7 ; a!!itional
D2 per microframE
027 2 a!!itional
D3 per microframE
;;7 $eserve!
For hi&h+
spee!
isochronous
an! interrupt
en!points
152 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.5 ,ndpoint
!escriptor
bytes
0 ; 2 3 ? @ :
#Len&th
#Descripto
r
%"pe
#/n!poi
nt!!res
s
wMaC,acketSi<e #-nterval
#mttri#ut
es
.um#er
0C09
/n!point
0C0@
/n!point .um#er .um#er .um#er
For full+8hi&h+spee!
isochronous
en!points(
this value must #e in
the ran&e from ; to
;:.
%he #-nterval value is
use! as the eCponent
for a 2#-nterval+;
valueL e.&.(
a #-nterval of ?
means a perio! of H
D2?+;E.
For full+8low+spee!
interrupt en!points(
the value of this fiel!
ma" #e from ; to
2@@.
For hi&h+spee!
interrupt en!points(
the #-nterval value is
use! as the eCponent
for a 2#-nterval+;
valueL e.&.(
a #-nterval of ?
means a perio! of H
D2?+;E.
%his value must #e
from ; to ;:.
For hi&h+spee!
#ulk8control =U%
en!points(
the #-nterval must
specif" the maCimum
.0 rate of the
en!point.
value of 0 in!icates
the en!point never
.0s.
=ther values in!icate
at most ; .0 each
#-nterval num#er of
microframes.
%his value must #e
in the ran&e from 0 to
2@@.
153 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.5 ,ndpoint
!escriptor
#mttri#ute
-sochronous
fee!#ack en!point alwa"s has the opposite !irection from the !ata
en!pointDsE it services.
-f multiple !ata en!points are to #e service! #" the same fee!#ack en!point( the !ata
en!points must have ascen!in& or!ere!T#ut not necessaril" consecutiveTen!point
num#ers.
%he first !ata en!point an! the fee!#ack en!point must have the same en!point
num#er Dan! opposite !irectionE.
%his ensures that a !ata en!point can uni)uel" i!entif" its fee!#ack en!point #"
searchin& for the first fee!#ack en!point that has an en!point num#er e)ual or less
than its own en!point num#er.
15 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.5 ,ndpoint
!escriptor
#mttri#ute
Fee!#ack
/Cample7
Consi!er the eCtreme case where there is a nee! for five &roups
of =U% as"nchronous isochronous en!points an! at the same time
four &roups of -. a!aptive isochronous en!points.
13 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.* String !escriptor
Strin& in!eC <ero for all lan&ua&es returns a strin& !escriptor
that contains an arra" of two+#"te L.>-D co!es supporte! #"
the !evice.
USB !evice ma" omit all strin& !escriptors.
USB !evices that omit all strin& !escriptors must not return an arra" of
L.>-D co!es.
%he arra" of L.>-D co!es is not .ULL+terminate!.
%he si<e of the arra" Din #"tesE is compute! #" su#tractin& two from the
value of the first #"te of the !escriptor.
%he U.-C=D/ strin& !escriptor Dshown in %a#le 9+;:E is not
.ULL+terminate!.
%he strin& len&th is compute! #" su#tractin& two from the value of the first
#"te of the !escriptor.
14 USB 2.0 Specification - Chapter 9 -
Device Framework
9.5.* String !escriptor
bytes
0 ; 2 3 ? @ : A
#Len&th
#Descripto
r
%"pe
wL.>-DU0V wL.>-DUOV wL.>-DUG+;V
.um#er
.R2
D2GR2E
-nterface
0C03
.um#er .um#er .um#er
bytes
0 ; 2 3 ? @ : A
#Len&th
#Descripto
r
%"pe
wL.>-DU0V
.um#er
.R2
-nterface
0C03
.um#er
.
Table 9-1#. Strin$ Descri"tor %ero& S"ecif'in$ (an$ua$es Su""orted b' t)e
De*ice
Table 9-1+. ,-./D0 Strin$ Descri"tor
15 USB 2.0 Specification - Chapter 9 -
Device Framework
9.* !evice )lass
!efinitions
9.*.1 !escriptors
9.*.1 0e+uests
1 USB 2.0 Specification - Chapter 9 -
Device Framework
9.*.1 !escriptors