From: hardware.evs on
Hello,

I'm currently evaluating KMDF for an USB Driver.

Our device is based on Cypress FX2 chip. We stream video trough EP2
configured as IN Isochronous (High Bandwith device - 2*724 bytes per
µframe).

When looking in the documentation (Version 1.1 of the framework), I see
that WdfUsbTargetPipeFormatRequestForRead method must be used with a
Bulk or Interrupt Pipe. So I assume that an Isochronous Pipe is not a
valid pipe for this method.

I also saw that the framework has a continuous reader. But my
understanding of this reader is that it's purpose is only for
intrinsically asynchronous events (like a change in a device state). As
this continous reader doesn't have a limitation on which kind of pipe
it use, can I use it for my application ?

So my question : What is the right method to use a High Bandwidth
Isochronous streaming device with KMDF ? Should I create URB's instead
?

I must add that while our device streams video. It's not recognized as
a steraming device under windows, that is we do not use directshow or
other AVStream interface. So the fact that is video that is currently
streamed has little importance.

Thanks,
Fred.

From: Eliyas Yakub [MSFT] on
KMDF interfaces including continuous reader support formatting of request
for interrupt and bulk endpoints only. For isochronous endpoints, you have
to create and format the URB yourself and send it to the usbstack using
generic KMDF interfaces. Take a look at the USBSAMP in the Vista RC1 DDK. It
shows how to use KMDF functions to interact with isochronous endpoints. Note
that USBSAMP is available only in the Vista RC1 DDK.

-Eliyas


From: Doron Holan [MS] on
specifically you should use WdfUsbTargetPipeFormatRequestForUrb to format
the WDFREQUEST. You would allocate the memory for the URB using
WdfMemoryCreate, format the fields, call
WdfUsbTargetPipeFormatRequestForUrb() and then call WdfRequestSend

d

--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.


"Eliyas Yakub [MSFT]" <eliyasy(a)online.microsoft.com> wrote in message
news:ugKjOUs0GHA.1304(a)TK2MSFTNGP05.phx.gbl...
> KMDF interfaces including continuous reader support formatting of request
> for interrupt and bulk endpoints only. For isochronous endpoints, you have
> to create and format the URB yourself and send it to the usbstack using
> generic KMDF interfaces. Take a look at the USBSAMP in the Vista RC1 DDK.
> It shows how to use KMDF functions to interact with isochronous endpoints.
> Note that USBSAMP is available only in the Vista RC1 DDK.
>
> -Eliyas
>


From: fredsky on
Thanks for your answers guys.

I assume that even if I use URB's to receive data from an Isochronous
EP, I still have a lot of benefits to use WDF, right ?

So enough talk, let's devellop this driver ;-)

Fred


Doron Holan [MS] wrote:
> specifically you should use WdfUsbTargetPipeFormatRequestForUrb to format
> the WDFREQUEST. You would allocate the memory for the URB using
> WdfMemoryCreate, format the fields, call
> WdfUsbTargetPipeFormatRequestForUrb() and then call WdfRequestSend
>
> d
>
> --
> Please do not send e-mail directly to this alias. this alias is for
> newsgroup purposes only.
> This posting is provided "AS IS" with no warranties, and confers no rights.
>
>
> "Eliyas Yakub [MSFT]" <eliyasy(a)online.microsoft.com> wrote in message
> news:ugKjOUs0GHA.1304(a)TK2MSFTNGP05.phx.gbl...
> > KMDF interfaces including continuous reader support formatting of request
> > for interrupt and bulk endpoints only. For isochronous endpoints, you have
> > to create and format the URB yourself and send it to the usbstack using
> > generic KMDF interfaces. Take a look at the USBSAMP in the Vista RC1 DDK.
> > It shows how to use KMDF functions to interact with isochronous endpoints.
> > Note that USBSAMP is available only in the Vista RC1 DDK.
> >
> > -Eliyas
> >

From: fredsky on
Thanks for your answers guys.

I assume that even if I use URB's to receive data from an Isochronous
EP, I still have a lot of benefits to use WDF, right ?

So enough talk, let's devellop this driver ;-)

Fred


Doron Holan [MS] wrote:
> specifically you should use WdfUsbTargetPipeFormatRequestForUrb to format
> the WDFREQUEST. You would allocate the memory for the URB using
> WdfMemoryCreate, format the fields, call
> WdfUsbTargetPipeFormatRequestForUrb() and then call WdfRequestSend
>
> d
>
> --
> Please do not send e-mail directly to this alias. this alias is for
> newsgroup purposes only.
> This posting is provided "AS IS" with no warranties, and confers no rights.
>
>
> "Eliyas Yakub [MSFT]" <eliyasy(a)online.microsoft.com> wrote in message
> news:ugKjOUs0GHA.1304(a)TK2MSFTNGP05.phx.gbl...
> > KMDF interfaces including continuous reader support formatting of request
> > for interrupt and bulk endpoints only. For isochronous endpoints, you have
> > to create and format the URB yourself and send it to the usbstack using
> > generic KMDF interfaces. Take a look at the USBSAMP in the Vista RC1 DDK.
> > It shows how to use KMDF functions to interact with isochronous endpoints.
> > Note that USBSAMP is available only in the Vista RC1 DDK.
> >
> > -Eliyas
> >