From: ricobandito on
I am creating a driver based on the UMDF FX2_driver sample. My device
differs in that it has one input and one output interrupt endpoint. Also am
providing a symbolic name. I have a test application I would like to use
with this driver/device that uses WriteFile to send data to the driver. I am
able to verify thru tracing and a line trace that the data from the WriteFile
is being received by the driver and passed on to the usb device. However,
the WriteFile fails with a GetLastError() of 1117 (ERROR_IO_DEVICE). Need to
determine why I am getting this error.
From: Tim Roberts on
ricobandito <ricobandito(a)discussions.microsoft.com> wrote:
>
>I am creating a driver based on the UMDF FX2_driver sample. My device
>differs in that it has one input and one output interrupt endpoint.

This is a side trip, but why use an interrupt out pipe? I've never seen
the point -- you can do the same thing with bulk and get better
performance.

Have you changed CreateUsbIoTargets to look for interrupt pipes instead of
bulk?

>Also am
>providing a symbolic name. I have a test application I would like to use
>with this driver/device that uses WriteFile to send data to the driver. I am
>able to verify thru tracing and a line trace that the data from the WriteFile
>is being received by the driver and passed on to the usb device. However,
>the WriteFile fails with a GetLastError() of 1117 (ERROR_IO_DEVICE). Need to
>determine why I am getting this error.

How are you "passing on" the request? Are you calling
FormatRequestForWrite and ForwardFormattedRequest in your OnWrite handler,
like in the sample? Are you seeing an error in your OnCompletion handler?
Which error?
--
Tim Roberts, timr(a)probo.com
Providenza & Boekelheide, Inc.
From: ricobandito on


"Tim Roberts" wrote:

> ricobandito <ricobandito(a)discussions.microsoft.com> wrote:
> >
> >I am creating a driver based on the UMDF FX2_driver sample. My device
> >differs in that it has one input and one output interrupt endpoint.
>
> This is a side trip, but why use an interrupt out pipe? I've never seen
> the point -- you can do the same thing with bulk and get better
> performance.
>

This is what the hardware provides. Not my decision.

> Have you changed CreateUsbIoTargets to look for interrupt pipes instead of
> bulk?

Yes, modified my code to look for interrupt pipes instead of bulk pipe.
Tracing shows this is working fine.
>
> >Also am
> >providing a symbolic name. I have a test application I would like to use
> >with this driver/device that uses WriteFile to send data to the driver. I am
> >able to verify thru tracing and a line trace that the data from the WriteFile
> >is being received by the driver and passed on to the usb device. However,
> >the WriteFile fails with a GetLastError() of 1117 (ERROR_IO_DEVICE). Need to
> >determine why I am getting this error.
>
> How are you "passing on" the request? Are you calling
> FormatRequestForWrite and ForwardFormattedRequest in your OnWrite handler,
> like in the sample? Are you seeing an error in your OnCompletion handler?
> Which error?

Just as you say, error code is some odd value. Does not match any
meaningful error code.
> --
> Tim Roberts, timr(a)probo.com
> Providenza & Boekelheide, Inc.
> .
>
From: Tim Roberts on
ricobandito <ricobandito(a)discussions.microsoft.com> wrote:
>"Tim Roberts" wrote:
>>
>> This is a side trip, but why use an interrupt out pipe? I've never seen
>> the point -- you can do the same thing with bulk and get better
>> performance.
>
>This is what the hardware provides. Not my decision.

And you can't ask why this decision was made?

>> How are you "passing on" the request? Are you calling
>> FormatRequestForWrite and ForwardFormattedRequest in your OnWrite handler,
>> like in the sample? Are you seeing an error in your OnCompletion handler?
>> Which error?
>
>Just as you say, error code is some odd value. Does not match any
>meaningful error code.

You didn't answer any of my questions.
--
Tim Roberts, timr(a)probo.com
Providenza & Boekelheide, Inc.
From: ricobandito on


"Tim Roberts" wrote:

> ricobandito <ricobandito(a)discussions.microsoft.com> wrote:
> >"Tim Roberts" wrote:
> >>
> >> This is a side trip, but why use an interrupt out pipe? I've never seen
> >> the point -- you can do the same thing with bulk and get better
> >> performance.
> >
> >This is what the hardware provides. Not my decision.
>
> And you can't ask why this decision was made?
>

The answer I received was that all packet sizes a small (<= 64 bytes) and
latency for these messages is better than in bulk.

> >> How are you "passing on" the request? Are you calling
> >> FormatRequestForWrite and ForwardFormattedRequest in your OnWrite handler,
> >> like in the sample? Are you seeing an error in your OnCompletion handler?
> >> Which error?
> >
> >Just as you say, error code is some odd value. Does not match any
> >meaningful error code.
>
> You didn't answer any of my questions.
> --

Yes, using FormatRequestForWrite just as in the sample, including call to
ForwardFormattedRequest. OnWrite and OnRead are just as in sample.
Everything I am finding does not appear to point out any differences in this
method, interrupt or bulk. Driver trace is showing OnCompletion being
called with good parameter data, but that does not make it back to the app.
> Tim Roberts, timr(a)probo.com
> Providenza & Boekelheide, Inc.
> .
>