Roles and Responsibilities of following Drivers(Miniport(usbuhci.sys, usbohci, usbehci.sys), usbport

Hi,

I am working on windows device drivers for USB. While looking windows
documentation. I came across the loading order of various driver for USB,

Loaidng order is

Miniport Driver( usbuhci.sys, usbohci.sys or usbehci.sys) -> usbport.sys ->
usbhub.sys -> client driver

Can anybody explain the Roles and Responsibilty of each driver? Or Can tell
some link where I can get this information?

Thanks in advance!!

Note:: Client Driver Roles I know!!

usbuhci, usbohci,usbehci are the usb host controller drivers which are following different specs of usb host controller , in those uhci,ohci are full/low speed usb host controllers while ehci is full/high speed usb host controller…

the host controller driver will handle all things related to usb protocol which in turn handled by chip of host controller. Its responsible for handling of hc chip’s irq, diffrerent types of usb transfers scheduling and error recovery all usb stuff in the way chip is designed…

usbport is the wrapper designed for making host driver interface independent of function drivers and hub drivers which in turn uses the faciltiies provided by hc.

ushub.sys responsible for handling of usbhub functionality (either its integrated in hc chip or external usb hub)

client driver is the different function drivers provided for handling particular usb device, like usbvideo ,usbstorage etc, either for device protocol stuff or just for interface of application and device.

so whenever you are requesting the device for read/write from application it will interact with function driver of device which will convert the requests into the format required by hub driver , hub driver will send it to host controller driver which will convert request into the format required for h/w…

Hi Prajapati,

I appreciate your valuable explaination.

Is there any document or link which can explain more about these drivers. As
we are planning to write filter driver above usbhub.sys, for that we should
know functionalities provided by this driver.

Thanks and Regards
Sunil

On Mon, Jul 19, 2010 at 10:22 AM, wrote:

> usbuhci, usbohci,usbehci are the usb host controller drivers which are
> following different specs of usb host controller , in those uhci,ohci are
> full/low speed usb host controllers while ehci is full/high speed usb host
> controller…
>
> the host controller driver will handle all things related to usb protocol
> which in turn handled by chip of host controller. Its responsible for
> handling of hc chip’s irq, diffrerent types of usb transfers scheduling and
> error recovery all usb stuff in the way chip is designed…
>
> usbport is the wrapper designed for making host driver interface
> independent of function drivers and hub drivers which in turn uses the
> faciltiies provided by hc.
>
> ushub.sys responsible for handling of usbhub functionality (either its
> integrated in hc chip or external usb hub)
>
> client driver is the different function drivers provided for handling
> particular usb device, like usbvideo ,usbstorage etc, either for device
> protocol stuff or just for interface of application and device.
>
> so whenever you are requesting the device for read/write from application
> it will interact with function driver of device which will convert the
> requests into the format required by hub driver , hub driver will send it to
> host controller driver which will convert request into the format required
> for h/w…
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

usb hub device stack has good explaination about stack of usb drivers in wdk. and also can get help from old wdm help in usb section.

usb.org has the specs for hub functionality. The WDK has a set of usb hub
specific IOCTLS. between the two you have the functionality of usbhub.sys.

Mark Roddy

On Mon, Jul 19, 2010 at 2:23 AM, Sunil Kumar wrote:

> Hi Prajapati,
>
> I appreciate your valuable explaination.
>
> Is there any document or link which can explain more about these drivers.
> As we are planning to write filter driver above usbhub.sys, for that we
> should know functionalities provided by this driver.
>
> Thanks and Regards
> Sunil
>
>
>
> On Mon, Jul 19, 2010 at 10:22 AM, wrote:
>
>> usbuhci, usbohci,usbehci are the usb host controller drivers which are
>> following different specs of usb host controller , in those uhci,ohci are
>> full/low speed usb host controllers while ehci is full/high speed usb host
>> controller…
>>
>> the host controller driver will handle all things related to usb protocol
>> which in turn handled by chip of host controller. Its responsible for
>> handling of hc chip’s irq, diffrerent types of usb transfers scheduling and
>> error recovery all usb stuff in the way chip is designed…
>>
>> usbport is the wrapper designed for making host driver interface
>> independent of function drivers and hub drivers which in turn uses the
>> faciltiies provided by hc.
>>
>> ushub.sys responsible for handling of usbhub functionality (either its
>> integrated in hc chip or external usb hub)
>>
>> client driver is the different function drivers provided for handling
>> particular usb device, like usbvideo ,usbstorage etc, either for device
>> protocol stuff or just for interface of application and device.
>>
>> so whenever you are requesting the device for read/write from application
>> it will interact with function driver of device which will convert the
>> requests into the format required by hub driver , hub driver will send it to
>> host controller driver which will convert request into the format required
>> for h/w…
>>
>> —
>> NTDEV is sponsored by OSR
>>
>> For our schedule of WDF, WDM, debugging and other seminars visit:
>> http://www.osr.com/seminars
>>
>> To unsubscribe, visit the List Server section of OSR Online at
>> http://www.osronline.com/page.cfm?name=ListServer
>>
>
> — NTDEV is sponsored by OSR For our schedule of WDF, WDM, debugging and
> other seminars visit: http://www.osr.com/seminars To unsubscribe, visit
> the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer

>Miniport Driver( usbuhci.sys, usbohci.sys or usbehci.sys)

Drives the host controller hardware - UHCI, OHCI or EHCI.

-> usbport.sys

Common framework for the 3 above.

-> usbhub.sys

Represents the USB devices to PnP, and also is a target for the URBs sent by your driver, it passes them down to the HC driver (usbport + miniport) in undocumented way.


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com