USB over network - USB over IP

Hi All,

How can i detect a USB device plug-in/plug-out over a network? Also want to access the device as if it is connected to the same local machine. Please suggest a strategy.

You mean remote HCI? You need access to the usb hci miniport interface spec. Otherwise, you would have to do a lot of reverse-eng and end up having something works on some “observable” systems at best.

Talk to msft.

Calvin Guan
Broadcom Corp.
Connecting Everything(r)

— On Thu, 6/25/09, xxxxx@gmail.com wrote:

> From: xxxxx@gmail.com
> Subject: [ntdev] USB over network - USB over IP
> To: “Windows System Software Devs Interest List”
> Date: Thursday, June 25, 2009, 9:41 PM
> Hi All,
>
> How can i detect a USB device plug-in/plug-out over a
> network? Also want to access the device as if it is
> connected to the same local machine. Please suggest a
> strategy.
>
> —
> 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
>

There are many commercial products available like…USB over network…but please can anyone give me a pointer of how to develop such application…

Either design your own hw or be prepared to invest many man years in getting it working. What is your timeline for getting such a project completed? What type of devices do you want to remote?

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@gmail.com
Sent: Friday, June 26, 2009 1:06 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] USB over network - USB over IP

There are many commercial products available like…USB over network…but please can anyone give me a pointer of how to develop such application…


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

I want to operate on webcams which are connected to some host machine on the network and then operate each one of them through the main host machine. No time lines as such. But there are commercial software avialable in the market which do so. eg: KernelPro, www.usb-over-network.com etc

So why not buy one of those products? The cost of developing your own is going to far exceed the cost of one of them

d

Sent from my phone with no t9, all spilling mistakes are not intentional.

-----Original Message-----
From: xxxxx@gmail.com
Sent: Saturday, June 27, 2009 8:59 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] USB over network - USB over IP

I want to operate on webcams which are connected to some host machine on the network and then operate each one of them through the main host machine. No time lines as such. But there are commercial software avialable in the market which do so. eg: KernelPro, www.usb-over-network.com etc


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

yeah…buying one of them will certainly solve my client’s problems…but to know how to develop such things will add it to my knowledge base. I really want to know how does it happen ?

You either:

  1. Roll your own usbhub OR
  2. Develop your remote hci miniport to play nicely with the rest of msft’s usb stack.

Given what you have described, #2 is very unlikely an option for you. #1 will be a good exercise of reverse-engineering. You are more likely “test to work” as opposed to “design to work”(nice terms PeterGV coined).

Calvin Guan
Broadcom Corp.
Connecting Everything(r)

— On Sat, 6/27/09, xxxxx@gmail.com wrote:

> From: xxxxx@gmail.com
> Subject: RE:[ntdev] USB over network - USB over IP
> To: “Windows System Software Devs Interest List”
> Date: Saturday, June 27, 2009, 1:47 PM
> yeah…buying one of them will
> certainly solve my client’s problems…but to know how to
> develop such things will add it to my knowledge base. I
> really want to know how does it happen ?
>
> —
> 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
>

Why would there be “reverse-engineering” involved, Calvin? Aren’t all
the proper interfaces documented? How sikky12 would implement these
interfaces is up to him.

Calvin Guan wrote:

You either:

  1. Roll your own usbhub OR
  2. Develop your remote hci miniport to play nicely with the rest of msft’s usb stack.

Given what you have described, #2 is very unlikely an option for you. #1 will be a good exercise of reverse-engineering. You are more likely “test to work” as opposed to “design to work”(nice terms PeterGV coined).

Calvin Guan
Broadcom Corp.
Connecting Everything(r)

— On Sat, 6/27/09, xxxxx@gmail.com wrote:
>
>> From: xxxxx@gmail.com
>> Subject: RE:[ntdev] USB over network - USB over IP
>> To: “Windows System Software Devs Interest List”
>> Date: Saturday, June 27, 2009, 1:47 PM
>> yeah…buying one of them will
>> certainly solve my client’s problems…but to know how to
>> develop such things will add it to my knowledge base. I
>> really want to know how does it happen ?
>>
>> —
>> 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
>>
>
>
>
>

Once can deduce a lot from the USB info in ddk doc but that is not all.

Calvin

— On Sat, 6/27/09, comrade wrote:

> From: comrade
> Subject: Re:[ntdev] USB over network - USB over IP
> To: “Windows System Software Devs Interest List”
> Date: Saturday, June 27, 2009, 7:56 PM
> Why would there be
> “reverse-engineering” involved, Calvin? Aren’t all the
> proper interfaces documented? How sikky12 would implement
> these interfaces is up to him.
>
> Calvin Guan wrote:
> > You either:
> > 1) Roll your own usbhub OR
> > 2) Develop your remote hci miniport to play nicely
> with the rest of msft’s usb stack.
> >
> > Given what you have described, #2 is very unlikely an
> option for you. #1 will be a good exercise of
> reverse-engineering. You are more likely “test to work” as
> opposed to “design to work”(nice terms PeterGV coined).
> >
> > Calvin Guan
> > Broadcom Corp.
> > Connecting Everything(r)
> >
> > — On Sat, 6/27/09, xxxxx@gmail.com
>
> wrote:
> >
> >> From: xxxxx@gmail.com
>
> >> Subject: RE:[ntdev] USB over network - USB over
> IP
> >> To: “Windows System Software Devs Interest List”
>
> >> Date: Saturday, June 27, 2009, 1:47 PM
> >> yeah…buying one of them will
> >> certainly solve my client’s problems…but to
> know how to
> >> develop such things will add it to my knowledge
> base. I
> >> really want to know how does it happen ?
> >> —
> >> 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
>

That didn’t answer my question. Give me an example.

Calvin Guan wrote:

Once can deduce a lot from the USB info in ddk doc but that is not all.

Calvin

— On Sat, 6/27/09, comrade wrote:
>
>> From: comrade
>> Subject: Re:[ntdev] USB over network - USB over IP
>> To: “Windows System Software Devs Interest List”
>> Date: Saturday, June 27, 2009, 7:56 PM
>> Why would there be
>> “reverse-engineering” involved, Calvin? Aren’t all the
>> proper interfaces documented? How sikky12 would implement
>> these interfaces is up to him.
>>
>> Calvin Guan wrote:
>>> You either:
>>> 1) Roll your own usbhub OR
>>> 2) Develop your remote hci miniport to play nicely
>> with the rest of msft’s usb stack.
>>> Given what you have described, #2 is very unlikely an
>> option for you. #1 will be a good exercise of
>> reverse-engineering. You are more likely “test to work” as
>> opposed to “design to work”(nice terms PeterGV coined).
>>> Calvin Guan
>>> Broadcom Corp.
>>> Connecting Everything(r)
>>>
>>> — On Sat, 6/27/09, xxxxx@gmail.com
>>
>> wrote:
>>>> From: xxxxx@gmail.com
>>
>>>> Subject: RE:[ntdev] USB over network - USB over
>> IP
>>>> To: “Windows System Software Devs Interest List”
>>
>>>> Date: Saturday, June 27, 2009, 1:47 PM
>>>> yeah…buying one of them will
>>>> certainly solve my client’s problems…but to
>> know how to
>>>> develop such things will add it to my knowledge
>> base. I
>>>> really want to know how does it happen ?
>>>> —
>>>> 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
>>
>
>
>
>

There are some funny behaviors between usb generic parent (which is a msft driver) and the hub. There are also some internal undoc’d ioctls which are required. There are more subtle thingies need to be done correctly. I’m not motivated enough to remember them.

Calvin

— On Sat, 6/27/09, comrade wrote:

> From: comrade
> Subject: Re:[ntdev] USB over network - USB over IP
> To: “Windows System Software Devs Interest List”
> Date: Saturday, June 27, 2009, 10:39 PM
> That didn’t answer my question. Give
> me an example.
>
> Calvin Guan wrote:
> > Once can deduce a lot from the USB info in ddk doc but
> that is not all.
> > Calvin
> >
> > — On Sat, 6/27/09, comrade
> wrote:
> >
> >> From: comrade
> >> Subject: Re:[ntdev] USB over network - USB over
> IP
> >> To: “Windows System Software Devs Interest List”
>
> >> Date: Saturday, June 27, 2009, 7:56 PM
> >> Why would there be
> >> “reverse-engineering” involved, Calvin? Aren’t all
> the
> >> proper interfaces documented? How sikky12 would
> implement
> >> these interfaces is up to him.
> >>
> >> Calvin Guan wrote:
> >>> You either:
> >>> 1) Roll your own usbhub OR
> >>> 2) Develop your remote hci miniport to play
> nicely
> >> with the rest of msft’s usb stack.
> >>> Given what you have described, #2 is very
> unlikely an
> >> option for you. #1 will be a good exercise of
> >> reverse-engineering. You are more likely “test to
> work” as
> >> opposed to “design to work”(nice terms PeterGV
> coined).
> >>> Calvin Guan
> >>> Broadcom Corp.
> >>> Connecting Everything(r)
> >>>
> >>> — On Sat, 6/27/09, xxxxx@gmail.com
> >>
> >> wrote:
> >>>> From: xxxxx@gmail.com
> >>
> >>>> Subject: RE:[ntdev] USB over network - USB
> over
> >> IP
> >>>> To: “Windows System Software Devs Interest
> List”
> >>
> >>>> Date: Saturday, June 27, 2009, 1:47 PM
> >>>> yeah…buying one of them will
> >>>> certainly solve my client’s
> problems…but to
> >> know how to
> >>>> develop such things will add it to my
> knowledge
> >> base. I
> >>>> really want to know how does it happen ?
> —
> >>>> 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
> >>
> >
> >
> >? ? ???
>
> —
> 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
>

Hullo? You HAVE worked on Windows drivers before, right?

Well, be that as it may, let’s talk about USB.

The world of USB is truly fascinating: Nothing is exactly as it appears to be. Sort of like Floppy Disks, in this regard. There’s the USB spec, and then there’s established practice. Devices (and HCIs and Hubs) more follow accepted practice than they do the letter of the spec, and (of course) the spec always contains grey areas.

My favorite example is a particular company’s USB Mouse. It absolutely, positively, WILL NOT PROPERLY ENUMERATE (and get a bus address assigned by the HCI) as a USB device if you follow the letter of the spec. It expects to be enumerated, and in fact it MUST be enumerated, using the procedure that *Windows* uses to enumerate devices… some of which are, shall we say, “unique.”

You want to support the broadest range of USB devices? You need to do what Windows does. The spec doesn’t begin to tell the story.

Peter
OSR

I am not trying to put anyone on the spot… sorry if it sounded like
that, Peter and Calvin.

I am just really curious. I have worked with Linux and Windows, and in
my experience, the DDK documentation has been just excellent. While that
doesn’t compare with the ability to peak into Linux source code to see
how things work - that’s another story and probably not one relevant to
this alias. I was a bit surprised to hear that there were any parts of
the spec or the APIs that MSFT would leave to “chance”, or rather, to
some implementation detail that everyone must follow. Typically that
only happens when *not* following what the docs are saying.

Again, sorry if my tone didn’t come out right. I really appreciate
everyone’s expertise on this alias.

xxxxx@osr.com wrote:

Hullo? You HAVE worked on Windows drivers before, right?

Well, be that as it may, let’s talk about USB.

The world of USB is truly fascinating: Nothing is exactly as it appears to be. Sort of like Floppy Disks, in this regard. There’s the USB spec, and then there’s established practice. Devices (and HCIs and Hubs) more follow accepted practice than they do the letter of the spec, and (of course) the spec always contains grey areas.

My favorite example is a particular company’s USB Mouse. It absolutely, positively, WILL NOT PROPERLY ENUMERATE (and get a bus address assigned by the HCI) as a USB device if you follow the letter of the spec. It expects to be enumerated, and in fact it MUST be enumerated, using the procedure that *Windows* uses to enumerate devices… some of which are, shall we say, “unique.”

You want to support the broadest range of USB devices? You need to do what Windows does. The spec doesn’t begin to tell the story.

Peter
OSR

Konstantin Yoprst wrote:

I was a bit surprised to hear that there were any parts of the
spec or the APIs that MSFT would leave to “chance”, or rather,
to some implementation detail that everyone must follow.

Hahahahahaha…

Same question as Peter, have you ever actually worked on a driver before???

The interfaces for a usb hba are mostly documented but implementation
of a properly functioning usb hba is hardly documented at all. So
while the IOCTLs and DDIs are all more or less defined, putting that
together into a functional usb hba involves a lot of reverse
engineering.

Note that this project requires a full usb port driver. As far as I
know, there is no public documentation for a usb hba miniport and the
libraries definitions are not public either.

Mark Roddy

On Sat, Jun 27, 2009 at 10:56 PM, comrade wrote:
> Why would there be “reverse-engineering” involved, Calvin? Aren’t all the
> proper interfaces documented? How sikky12 would implement these interfaces
> is up to him.
>
> Calvin Guan wrote:
>>
>> You either:
>> 1) Roll your own usbhub OR
>> 2) Develop your remote hci miniport to play nicely with the rest of msft’s
>> usb stack.
>>
>> Given what you have described, #2 is very unlikely an option for you. #1
>> will be a good exercise of reverse-engineering. You are more likely “test to
>> work” as opposed to “design to work”(nice terms PeterGV coined).
>>
>> Calvin Guan
>> Broadcom Corp.
>> Connecting Everything(r)
>>
>> — On Sat, 6/27/09, xxxxx@gmail.com wrote:
>>
>>> From: xxxxx@gmail.com
>>> Subject: RE:[ntdev] USB over network - USB over IP
>>> To: “Windows System Software Devs Interest List”
>>> Date: Saturday, June 27, 2009, 1:47 PM
>>> yeah…buying one of them will
>>> certainly solve my client’s problems…but to know how to
>>> develop such things will add it to my knowledge base. I
>>> really want to know how does it happen ?
>>> —
>>> 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
>

> -----Original Message-----

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of comrade
Sent: Monday, June 29, 2009 3:47 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] USB over network - USB over IP

I am just really curious. I have worked with Linux and
Windows, and in
my experience, the DDK documentation has been just excellent.

Um, I wouldn’t use the word excellent but it is much better than it was
10 years before. However, it doesn’t mean it is complete. It is (should
be…) sufficient if you want to write a driver which uses interfaces
documented there. It doesn’t mean complete interface is documeted; there
is a lot of internal interfaces which OS uses on its own. Take a look
at, for example, usbioctl.h and check what IOCTLs are documented. And
this is WDK header which can be taken as “official” interface.

In addition, as Mark said, proper implementation of these interfaces
isn’t documented at all.

Best regards,

Michal Vodicka
UPEK, Inc.
[xxxxx@upek.com, http://www.upek.com]