USB host Application Development

  • Thread starter Thread starter sanju
  • Start date Start date
S

sanju

Hi All,

I'm new into USB application development and I've to develop a U.S.B
Application for a U.S.B sound device which must be able to run on
Windows XP/Vista. The purpose of this application is to get the data
from the USB port, sent by the USB sound device. The application has
to fetch the data at a good rate and without any compromise in the
data integrity.

In order to achieve the above said things, i need answers for the
questions below.

1. Which of the 3 options can be used to get access to the sound
device?
a.UMDF
b.KMDF
c.WinUSB

2.The device driver for this device is still not implemented, and on
what type of transfer could it be developed for this sound device?

a.Isochronous.
b.Bulk

If I assume it to be Isochronous then the retransmission will not be
possible. If i assume it to be Bulk Transfer, the data transfer cannot
happen continuously. Which of these 2 transfers are best suited for
the data transfer without much loss in the data?

3.In the 'WinUSB how to use WinUSB to communicate with a USB
device.doc', the control command usage and construction of a setup
packet are expalined, however these code snippets are not found in the
UMDF/KMDF. Is it specific to only WinUSB?

4.In the WDK source code sample, the USB application in the path given
below belongs to which of the 3 options?(UMDF,KMDF,WinUSB)?
C:\WinDDK\6001.18002\src\usb\isousb\exe
C:\WinDDK\6001.18002\src\usb\bulkusb\exe

Please help.

Regards,
Sanjay
 
do you want this device to appear to windows as an audio device (e.g. one
that windows can play sounds on?)

d
 
if you want windows to treat it as an audio device which windows renders
audio to, you hsould conform to the usb audio class spec. if you want a
device that you can speak to with a custom app, you can make it a custom
device that does not belong to any defined device class. if you do not use
isoch pipes, you can use winusb and not even have to write a driver. if you
need isoch, then you must write your own driver, I would start with usbsamp
in the latest wdk.
SetUpDiGetClassDivs()(),SetupDiEnumDeviceInterfaces()..etc to get the
these let you find the device, CreateFile/DeviceIoControl are the ones that
let you open it and send it io

d
 
if you want windows to treat it as an audio device which windows renders
audio to,  you hsould conform to the usb audio class spec.  if you want a
device that you can speak to with a custom app, you can make it a custom
device that does not belong to any defined device class.  if you do notuse
isoch pipes, you can use winusb and not even have to write a driver.  if you
need isoch, then you must write your own driver, I would start with usbsamp
in the latest wdk.


these let you find the device, CreateFile/DeviceIoControl are the ones that
let you open it and send it io

d

thanks doron. Thanks for your help.
 
I found few device class specific functions that are used in some
applications,
For ex, for the HID devices, the Hidd_GetHidGuid, Hidd_GetAttributes,
HidD_GetPreParsedData are used along with the standard USB setup API
functions.
Does all the device classes have such device class specific functions
that have to be made use while developing the application?
 
some classes like HID have APIs that you can call, others have
CreateFile/DeviceIoControl. Some have COM wrappers. there is no standard,
each class has its own APIs and API style

d
 
Back
Top