Hello Brian, The strings in the descriptor are taken into account after the device = has been enumerated into the system. Therein lays the problem. Before = the descriptors can be read, the device has to be discovered. Therefore = the name in the INF is used in device manager, but the descriptor = strings ARE used in the control panel apps since they can be read once = the device is started by the driver. The driver issues GET_CUR/SET_CUR, GET_MIN, GET_MAX, and GET_RES = attribute requests to units which support ranges for the controls (ie = Volume Control). It will only issue GET_CUR/SET_CUR to units which are = Boolean in nature (ie Mute).=20 I will review your descriptors and get back to you on a private thread. Thanks, DJ This posting is provided "AS IS" with no warranties, and confers no = rights. -----Original Message----- From: Brian Toba [mailto:briantoba@xxxxxxxxx]=20 Sent: Monday, March 10, 2003 5:45 AM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: USB Audio class device Hi DJ Sisolak, i'll attach at the end of this email my descriptor file. Thanks for your answer. Woah! I can't believe it! so the strings in the descriptors doesn't work = at all? What do i have to do, to make Microsoft add my device in that file? does it'll be updated thru Windows Update? Why don't they just use the strings suplied by the device? Other thing, wich messages, like GET_CUR, issues the OS to audio = devices? Thanks a lot. Brian. *** THIS IS MY DESCRIPTOR FILE **** *** STRINGS ARE NOT HERE *** *** Some comments are in spanish, sorry for that *** DeviceDscr: db DeviceDscrEnd-DeviceDscr ;; Descriptor length db DSCR_DEVICE ;; Decriptor type dw 0001H ;; Specification Version (BCD) db 00H ;; Device class db 00H ;; Device sub-class db 00H ;; Device sub-sub-class db 64 ;; Maximum packet size dw 3412H ;; Vendor ID Cypress 4705H dw 0500H ;; Product ID dw 0100H ;; Product version ID db 1 ;; Manufacturer string index db 2 ;; Product string index db 3 ;; Serial number string index db 1 ;; Numder of configurations DeviceDscrEnd: ConfigDscr: db ConfigDscrEnd-ConfigDscr ;; Descriptor length db DSCR_CONFIG ;; Descriptor type db 109 ;; Configuration + End Points length (LSB) db 00 ;; Configuration length (MSB) db 2 ;; Number of interfaces db 1 ;; Interface number db 4 ;; Configuration string db 10000000b ;; Attributes (b7 - buspwr, b6 - selfpwr, b5 - rwu) db 50 ;; Power requirement (div 2 ma) ConfigDscrEnd: Intrfc0Dscr: db Intrfc0DscrEnd-Intrfc0Dscr ;; Descriptor length db DSCR_INTRFC ;; Descriptor type db 0 ;; Zero-based index of this interface db 0 ;; Alternate setting db 0 ;; Number of end points db C_AUDIO ;; Interface class: AUDIO db SC_AUDIO_CONTROL;; Interface sub class: AUDIO_CONTROL db 00H ;; Interface sub sub class db 5 ;; Interface descriptor string index Intrfc0DscrEnd: ClassSpecificIntrfc0Dscr: db ClassSpecificIntrfc0DscrEnd-ClassSpecificIntrfc0Dscr ;; Descriptor length db CS_INTERFACE ;; Descriptor type db HEADER ;; Descriptor sub-type dw 0001H ;; Rev. de la clase de audio 1.0 db 39 ;; Tama=F1o total de los Class-specific Descriptor (LSB) db 00 ;; Tama=F1o total de los Class-specific Descriptor (MSB) db 1 ;; N=FAmero de interfaces de audio (streaming) db 1 ;; Lista de interfaces de audio (como solo hay una...) ClassSpecificIntrfc0DscrEnd: IT0Dscr: db IT0DscrEnd-IT0Dscr ;; Descriptor length db CS_INTERFACE ;; Descriptor type db INPUT_TERMINAL ;; Descriptor sub-type db 1 ;; Identificador del Terminal dw 0502H ;; Tipo de terminal: Micr=F3fono de escritorio db 0 ;; Asociacion db 1 ;; N=FAmero de canales dw 0000H ;; que canales? db 8 ;; Nombre del primer canal db 7 ;; Nombre del Terminal IT0DscrEnd: FTDscr: db FTDscrEnd-FTDscr ;; Descriptor length db CS_INTERFACE ;; Descriptor type db FEATURE_UNIT ;; Descriptor sub-type db 2 ;; Identificador del Feature Unit db 1 ;; ID de la Fuente de se=F1al db 1 ;; Control Size db 03H ;; Controles Master ch: Mute y Volumen db 00H ;; Controles ch 1: Ninguno db 0 ;; Nombre de la Feature FTDscrEnd: OT0Dscr: db OT0DscrEnd-OT0Dscr ;; Descriptor length db CS_INTERFACE ;; Descriptor type db OUTPUT_TERMINAL ;; Descriptor sub-type db 3 ;; Identificador del Terminal dw 0101H ;; Tipo de terminal: USB Streaming db 0 ;; Asociacion db 2 ;; ID de la fuente db 8 ;; Nombre del Terminal OT0DscrEnd: Intrfc1AS0Dscr: db Intrfc1AS0DscrEnd-Intrfc1AS0Dscr ;; Descriptor length db DSCR_INTRFC ;; Descriptor type db 1 ;; Zero-based index of this interface db 0 ;; Alternate setting db 0 ;; Number of end points db C_AUDIO ;; Interface class: AUDIO db SC_AUDIO_STREAMING ;; Interface sub class: AUDIO STREAMING db 00H ;; Interface sub sub class db 9 ;; Interface descriptor string index Intrfc1AS0DscrEnd: Intrfc1AS1Dscr: db Intrfc1AS1DscrEnd-Intrfc1AS1Dscr ;; Descriptor length db DSCR_INTRFC ;; Descriptor type db 1 ;; Zero-based index of this interface db 1 ;; Alternate setting db 1 ;; Number of end points db C_AUDIO ;; Interface class: AUDIO db SC_AUDIO_STREAMING ;; Interface sub class: AUDIO STREAMING db 00H ;; Interface sub sub class db 10 ;; Interface descriptor string index Intrfc1AS1DscrEnd: ClassSpecificIntrfc1Dscr: db ClassSpecificIntrfc1DscrEnd-ClassSpecificIntrfc1Dscr ;; Descriptor length db CS_INTERFACE ;; Descriptor type db GENERAL ;; Descriptor sub-type db 3 ;; OT al que est=E1 conectado db 01H ;; Retraso de la interfaz dw 0100H ;; Formato: PCM ClassSpecificIntrfc1DscrEnd: FormatDscr: db FormatDscrEnd-FormatDscr ;; Descriptor length db CS_INTERFACE ;; Descriptor type db FORMAT_TYPE ;; Descriptor sub-type db FORMAT_TYPE_I ;; Tipo de formato db 1 ;; N=FAmero de canales db 2 ;; Bytes por sub frame db 16 ;; Bits por muestra db 1 ;; Frecuencias soportadas db 40H ;; Frecuencia en Hz (LSB) db 1FH ;; Frecuencia en Hz (CSB) db 00H ;; Frecuencia en Hz (MSB) FormatDscrEnd: EpI1Dscr: db EpI1DscrEnd-EpI1Dscr ;; Descriptor length db DSCR_ENDPNT ;; Descriptor type db 88H ;; Endpoint number, and direction db ET_ISO ;; Endpoint type db 10H ;; Maximun packet size (LSB) db 00H ;; Maximun packet size (MSB) db 1 ;; Packet per frame db 0 ;; Refresh (0 por definici=F3n) db 0 ;; SyncAddress (0 por definici=F3n) EpI1DscrEnd: CSEpI1Dscr: db CSEpI1DscrEnd-CSEpI1Dscr ;; Descriptor length db CS_ENDPOINT ;; Descriptor type db GENERAL ;; Descriptor sub-type db 00H ;; Atributos db 00H ;; Lock delay bits dw 0000H ;; Lock delay CSEpI1DscrEnd: StringDscr: StringDscr0: db StringDscr0End-StringDscr0 ;; String descriptor length db DSCR_STRING db 09H,04H StringDscr0End: ----- Original Message ----- From: "DJ Sisolak" <dsisolak@xxxxxxxxxxxxxxxxxxxxxx> To: <wdmaudiodev@xxxxxxxxxxxxx> Sent: Monday, March 10, 2003 3:37 AM Subject: [wdmaudiodev] Re: USB Audio class device > > Hello Brian, > > I can answer the second part of your message at least. The device = shows > up in device manager as "USB Audio Device" in device manager because = it > enumerates through the class identifiers in the wdma_usb.inf file. = Only > devices which are explicitly called out by this file will show up > otherwise. > > As to why the device does not show the proper controls, I cannot be > certain without the device in hand. Perhaps if you sent me a listing = of > your descriptors I could better understand. > > Thanks, > DJ Sisolak > Microsoft Corp. > > This posting is provided "AS IS" with no warranties, and confers no > rights. > > -----Original Message----- > From: Brian Toba [mailto:briantoba@xxxxxxxxx]=3D20 > Sent: Sunday, March 09, 2003 10:47 AM > To: wdmaudiodev@xxxxxxxxxxxxx > Subject: [wdmaudiodev] USB Audio class device > > Hi, > > I've developed a usb audio class device, it's a microphone. An IT, a > feature > unit and an OT, it works fine in Windows XP, i mean i can record audio > in > the Sound Recorder. The detail is, that i can't find to make windows > detect > the feature unit, because when y select my device in Control Pane-> > Sound > the Volume button is disabled. I've have programmed the device to = answer > to > GET and SET CUR, MAX, MIN and RES and tested them with Jungo's = WinDriver > Wizard. So, wich could be the issue? > > Another thing is that when i plug my device, and the balloon pops up, = it > says: "Microphone" (My product name) then USB Composite Device (As = it's > get > registered in the Device manager list under USB controllers, then it > detect > the "Interface 0" and then USB Class Audio. So far it's nice, but why > does > the interface get listed in the Device Manager under Sound, video and > game > controller as "USB Class Audio" rather than "Interface 0". Notice that > in > Control Pane-> Sound in the dropdown box i have "Interface 0" as the > device > name. > > Thanks a lot > > Afro. > > > ****************** > > WDMAUDIODEV addresses: > Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx > Subscribe: =3D > mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=3D3Dsubscribe > Unsubscribe: > mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=3D3Dunsubscribe > Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx > > URL to WDMAUDIODEV page: > http://www.wdmaudiodev.de/ > > ****************** > > WDMAUDIODEV addresses: > Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx > Subscribe: = mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=3Dsubscribe > Unsubscribe: = mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=3Dunsubscribe > Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx > > URL to WDMAUDIODEV page: > http://www.wdmaudiodev.de/ > ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: = mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=3Dsubscribe Unsubscribe: = mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=3Dunsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.de/ ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.de/