QueryBusInformation(IRP_MN_QUERY_INTERFACe).

Hi All,

As my driver has to supply the information for the different versions of
IRP_MN_QUERY_INTERFACE, there are few functions which my driver has to
support and subsequently I have to fill in the structure for
QueryBusInformation()…based on the level 0/1. So I am getting the query for
Level 1 and I am wondering what exactly the below structures has to be
filled???

typedef struct _USB_BUS_INFORMATION_LEVEL_0 {

/* bandwidth in bits/sec */

ULONG TotalBandwidth;

/* mean bandwidth consumed in bits/sec */

ULONG ConsumedBandwidth;

} USB_BUS_INFORMATION_LEVEL_0, *PUSB_BUS_INFORMATION_LEVEL_0;

typedef struct _USB_BUS_INFORMATION_LEVEL_1 {

/* bandwidth in bits/sec */

ULONG TotalBandwidth;

/* mean bandwidth consumed in bits/sec */

ULONG ConsumedBandwidth;

/*

controller ‘unicode’ symbolic name

*/

ULONG ControllerNameLength;

WCHAR ControllerNameUnicodeString[1];

} USB_BUS_INFORMATION_LEVEL_1, *PUSB_BUS_INFORMATION_LEVEL_1;

It would be great if someone can throw some light on this.

Thanks in advance!!!


This message, together with any attachment(s), contains confidential and proprietary information of
ServerEngines LLC and is intended only for the designated recipient(s) named above. Any unauthorized
review, printing, retention, copying, disclosure or distribution is strictly prohibited. If you are not the
intended recipient of this message, please immediately advise the sender by reply email message and
delete all copies of this message and any attachment(s). Thank you.

Vishwanath Maram wrote:

As my driver has to supply the information for the different
versions of IRP_MN_QUERY_INTERFACE, there are few
functions which my driver has to support and subsequently
I have to fill in the structure for QueryBusInformation()…based
on the level 0/1. So I am getting the query for Level 1 and I
am wondering what exactly the below structures has to
be filled???

Issue the request to the real host controller and see what response you get. How many times are you going to ask this same kind of question?

I think the OP would prefer that one of us go reverse engineer this for him.
I’d be glad to do so of course, at the usual rates.

On Feb 13, 2008 10:36 AM, wrote:

> Vishwanath Maram wrote:
>
> > As my driver has to supply the information for the different
> > versions of IRP_MN_QUERY_INTERFACE, there are few
> > functions which my driver has to support and subsequently
> > I have to fill in the structure for QueryBusInformation()…based
> > on the level 0/1. So I am getting the query for Level 1 and I
> > am wondering what exactly the below structures has to
> > be filled???
>
> Issue the request to the real host controller and see what response you
> get. How many times are you going to ask this same kind of question?
>
> —
> 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
>


Mark Roddy

Even though you had seen my question so many times then why are you asking
me to issue the request to the real host controller when there is no host
controller itself???

If at all you haven’t understood what is the functionality of my virtual bus
driver try to ask me as to what exactly was the problem I am facing??? Just
don’t say as to how many times I will ask the same question???

Mark then why don’t you do the reverse engineering for me then???

Hi All,

Please if you people don’t want to answer the question’s here that’s fine
with people, but don’t keep writing these kind of mails to anyone…

Thanks,
-Vishwanath

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@gmail.com
Sent: Wednesday, February 13, 2008 7:36 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] QueryBusInformation(IRP_MN_QUERY_INTERFACe).

Vishwanath Maram wrote:

As my driver has to supply the information for the different
versions of IRP_MN_QUERY_INTERFACE, there are few
functions which my driver has to support and subsequently
I have to fill in the structure for QueryBusInformation()…based
on the level 0/1. So I am getting the query for Level 1 and I
am wondering what exactly the below structures has to
be filled???

Issue the request to the real host controller and see what response you get.
How many times are you going to ask this same kind of question?


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


This message, together with any attachment(s), contains confidential and proprietary information of
ServerEngines LLC and is intended only for the designated recipient(s) named above. Any unauthorized
review, printing, retention, copying, disclosure or distribution is strictly prohibited. If you are not the
intended recipient of this message, please immediately advise the sender by reply email message and
delete all copies of this message and any attachment(s). Thank you.

Vishwanath Maram wrote:

Even though you had seen my question so many times then why
are you asking me to issue the request to the real host controller
when there is no host controller itself???

Your response highlights the fundamental reason why you are having so much trouble figuring this class of problem.

Mark then why don’t you do the reverse engineering for me then???

When are you sending the check?

Vishwanath Maram wrote:

Even though you had seen my question so many times then why are you asking
me to issue the request to the real host controller when there is no host
controller itself???

You have a host controller on the remote end, right? You should be able
to check to see what IT returns for the same request, and from that
reverse engineer your own answer.

The problem here is that you are working in an area that is essentially
undocumented. Microsoft provides the host controller, hub, and generic
parent drivers, and the interactions between them are all private to
Microsoft. You aren’t going to get answers to specific questions,
because third party driver writers simply don’t work in this area.

On another level, it should not be hard to figure out what a field
called “ControllerNameUnicodeString” has to contain. There aren’t that
many things that can be construed as a “name” in the driver world.

Please if you people don’t want to answer the question’s here that’s fine
with people, but don’t keep writing these kind of mails to anyone…

Well, you have to see it from our point of view. Over and over, we get
people on this list who essentially have us develop their drivers for
them, by asking for the next step, and the next step, and the next step,
and the next step, without doing investigations on their own. They
essentially have us write their drivers for free, when most of us do
this for our clients on an hourly basis.

Your questions are in kind of a gray area. They’re not highly detailed,
but they’re also in a region that is poorly documented, because
Microsoft doesn’t anticipate that people will need to be working at that
level.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi Tim,

Thanks for your response.

Yeah I agree with you but there are some requirements from our clients for
this kind of work and we can’t eventually stop working on this.

You understood my question correctly and answered as per your knowledge and
never said anything discouraging or commented on others…so my request for
others is if they don’t understand please don’t reply that’s all.

Even I couldn’t explain the problem as I am just thinking this might be a
problem and trying to work around with this that’s all…It’s just an
anticipation that this might solve…So I am unable to explain the issue
very clearly…

I am trying to figure out as to what is happening from past few days as to
why this virtual driver doesn’t get any call for Selecting the interface of
video…so I am trying everything whatever I am suspecting…

Thanks,
-Vishwanath

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Tim Roberts
Sent: Wednesday, February 13, 2008 10:12 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] QueryBusInformation(IRP_MN_QUERY_INTERFACe).

Vishwanath Maram wrote:

Even though you had seen my question so many times then why are you asking
me to issue the request to the real host controller when there is no host
controller itself???

You have a host controller on the remote end, right? You should be able
to check to see what IT returns for the same request, and from that
reverse engineer your own answer.

The problem here is that you are working in an area that is essentially
undocumented. Microsoft provides the host controller, hub, and generic
parent drivers, and the interactions between them are all private to
Microsoft. You aren’t going to get answers to specific questions,
because third party driver writers simply don’t work in this area.

On another level, it should not be hard to figure out what a field
called “ControllerNameUnicodeString” has to contain. There aren’t that
many things that can be construed as a “name” in the driver world.

Please if you people don’t want to answer the question’s here that’s fine
with people, but don’t keep writing these kind of mails to anyone…

Well, you have to see it from our point of view. Over and over, we get
people on this list who essentially have us develop their drivers for
them, by asking for the next step, and the next step, and the next step,
and the next step, without doing investigations on their own. They
essentially have us write their drivers for free, when most of us do
this for our clients on an hourly basis.

Your questions are in kind of a gray area. They’re not highly detailed,
but they’re also in a region that is poorly documented, because
Microsoft doesn’t anticipate that people will need to be working at that
level.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.


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


This message, together with any attachment(s), contains confidential and proprietary information of
ServerEngines LLC and is intended only for the designated recipient(s) named above. Any unauthorized
review, printing, retention, copying, disclosure or distribution is strictly prohibited. If you are not the
intended recipient of this message, please immediately advise the sender by reply email message and
delete all copies of this message and any attachment(s). Thank you.

Vishwanath Maram wrote:

You understood my question correctly and answered as per your
knowledge and never said anything discouraging or commented
on others…so my request for others is if they don’t understand
please don’t reply that’s all.

I understand perfectly, so does Tim. It’s not a matter of understanding at all. In fact, we both gave you the same answer to your question, but instead you just started getting belligerent and telling us about your “requirements”.

At least you post with your work address, so we know what products to avoid in the future – after all, you’ve previously testified against yourself that your code is passing back bogus function pointers, etc. in order to “just make it work” – “by Friday”, no doubt.

Tim Roberts wrote (to Vishwanath Maram):

You have a host controller on the remote end, right? You should be
able to check to see what IT returns for the same request, and from
that reverse engineer your own answer.

Just out of curiosity (the last code sample included fields for “(mean)
bandwidth in bits/sec”):
Virtualizing local USB I/O, if the bit rate requirements are “forwarded”
from the remote system, wouldn’t this “throttle” the local USB bus?

Of course this is not an issue if the virtual host controller is a
virtual USB root hub (i.e. an EHCI host controller).

The problem here is that you are working in an area that is
essentially undocumented.

It would be nice if (USB) port forwarding were part of the OS, and I see
it becoming more of an issue - specifically with virtualization and
remote desktops/thin clients. At least for Citrix I happen to know that
there is no generic solution for (non-HID) USB devices.

So whatever OP does is quite interesting b/c it could provide a
generic mechanism how to solve these “remote USB access” problems.

On another level, it should not be hard to figure out what a field
called “ControllerNameUnicodeString” has to contain. There aren’t
that many things that can be construed as a “name” in the driver
world.

Not to mention the comments above the field names. Argh!