From: Eliyas Yakub [MSFT] on
http://www.microsoft.com/whdc/devtools/WDK/AboutWDK.mspx


"Gopalakrishnan" <Gopalakrishnan(a)discussions.microsoft.com> wrote in message
news:4E621FBA-43C9-41C4-AC7C-F6B5D36499C3(a)microsoft.com...
> Hi Eliyas,
>
> Please let me know from where I can download Vista RC1 WDK, I couldn't
> find it in microsoft website. It would of great help if you can give me
> the
> path.
>
> Thanks,
> Gopalakrishnan.
>
>
> "Eliyas Yakub [MSFT]" wrote:
>
>> Take a look at the src\kmdf\USBSAMP in the Vista RC1 WDK. It shows how to
>> talk to isoch endpoints.
>>
>> -Eliyas
>>
>>
>> "Gopalakrishnan" <Gopalakrishnan(a)discussions.microsoft.com> wrote in
>> message
>> news:1B760506-FD43-4E60-9C5B-E361BDAA8BF0(a)microsoft.com...
>> > Hi,
>> >
>> > I need a sample code for WDF driver which read data from isochronous
>> > pipe.
>> > Can anyone please help as I am begineer to the driver development work.
>> >
>> > I followed the steps given by Mr. Doron,
>> >
>> >> 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
>> >
>> > but I am getting STATUS_INVALID_PARAMETER as soon as WdfRequestSend is
>> > executed.
>> >
>> >
>> >
>> >
>> > "fredsky" wrote:
>> >
>> >> Thanks,
>> >>
>> >> I just began writing of driver. For the moment, it's just dialog
>> >> through Control Endpoint.
>> >>
>> >> I have two remarks :
>> >>
>> >> 1) It's not so easy to use WDF because it's a whole new (for me)
>> >> syntax. GoodBye all habits.
>> >> 2) In one day I was able to dialog with my device trough Control
>> >> Enpoint and without writing any PNP or Power Management code (well
>> >> beside AddDevice, PrepareHardware, ...)
>> >>
>> >> All in all, i'm pretty impressed by WDF.
>> >>
>> >> Fred.
>> >>
>> >>
>> >> Tim Roberts a ?crit :
>> >>
>> >> > "fredsky" <hardware.evs(a)gmail.com> wrote:
>> >> >
>> >> > >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 ?
>> >> >
>> >> > Yes, if nothing else than the sheer volume of code. With KMDF, you
>> >> > don't
>> >> > have to write any power or PnP code at all.
>> >> > --
>> >> > - Tim Roberts, timr(a)probo.com
>> >> > Providenza & Boekelheide, Inc.
>> >>
>> >>
>>
>>
>>


From: Gopalakrishnan on
Hi Eliyas,
I downloaded the the 2.3 GB WDK RC1 file, but unable to install it.
When I try to extact the file, only the readme file is getting extracted.
The readme file says "This disc contains a "UDF" file system and requires an
operating system
that supports the ISO-13346 "UDF" file system specification." I am using
Win XP. How should I proceed now?

I need only the KMDF source code for the ISOCHRONOUS pipe, can you please
email me that to my email-id krishnansuper(a)hotmail.com

Please do help.

Thanks,
Gopalakrishnan.


"Eliyas Yakub [MSFT]" wrote:

> http://www.microsoft.com/whdc/devtools/WDK/AboutWDK.mspx
>
>
> "Gopalakrishnan" <Gopalakrishnan(a)discussions.microsoft.com> wrote in message
> news:4E621FBA-43C9-41C4-AC7C-F6B5D36499C3(a)microsoft.com...
> > Hi Eliyas,
> >
> > Please let me know from where I can download Vista RC1 WDK, I couldn't
> > find it in microsoft website. It would of great help if you can give me
> > the
> > path.
> >
> > Thanks,
> > Gopalakrishnan.
> >
> >
> > "Eliyas Yakub [MSFT]" wrote:
> >
> >> Take a look at the src\kmdf\USBSAMP in the Vista RC1 WDK. It shows how to
> >> talk to isoch endpoints.
> >>
> >> -Eliyas
> >>
> >>
> >> "Gopalakrishnan" <Gopalakrishnan(a)discussions.microsoft.com> wrote in
> >> message
> >> news:1B760506-FD43-4E60-9C5B-E361BDAA8BF0(a)microsoft.com...
> >> > Hi,
> >> >
> >> > I need a sample code for WDF driver which read data from isochronous
> >> > pipe.
> >> > Can anyone please help as I am begineer to the driver development work.
> >> >
> >> > I followed the steps given by Mr. Doron,
> >> >
> >> >> 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
> >> >
> >> > but I am getting STATUS_INVALID_PARAMETER as soon as WdfRequestSend is
> >> > executed.
> >> >
> >> >
> >> >
> >> >
> >> > "fredsky" wrote:
> >> >
> >> >> Thanks,
> >> >>
> >> >> I just began writing of driver. For the moment, it's just dialog
> >> >> through Control Endpoint.
> >> >>
> >> >> I have two remarks :
> >> >>
> >> >> 1) It's not so easy to use WDF because it's a whole new (for me)
> >> >> syntax. GoodBye all habits.
> >> >> 2) In one day I was able to dialog with my device trough Control
> >> >> Enpoint and without writing any PNP or Power Management code (well
> >> >> beside AddDevice, PrepareHardware, ...)
> >> >>
> >> >> All in all, i'm pretty impressed by WDF.
> >> >>
> >> >> Fred.
> >> >>
> >> >>
> >> >> Tim Roberts a écrit :
> >> >>
> >> >> > "fredsky" <hardware.evs(a)gmail.com> wrote:
> >> >> >
> >> >> > >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 ?
> >> >> >
> >> >> > Yes, if nothing else than the sheer volume of code. With KMDF, you
> >> >> > don't
> >> >> > have to write any power or PnP code at all.
> >> >> > --
> >> >> > - Tim Roberts, timr(a)probo.com
> >> >> > Providenza & Boekelheide, Inc.
> >> >>
> >> >>
> >>
> >>
> >>
>
>
>
From: David J. Craig on
No, we can't. That would violate the EULA for the WDK. Why not do it
correctly yourself? Remove any third party UDF drivers such as Nero and
Roxio. XP can properly install the WDK.

"Gopalakrishnan" <Gopalakrishnan(a)discussions.microsoft.com> wrote in message
news:4CF27514-BA10-4384-BEAA-C2A16A5F7661(a)microsoft.com...
> Hi Eliyas,
> I downloaded the the 2.3 GB WDK RC1 file, but unable to install it.
> When I try to extact the file, only the readme file is getting extracted.
> The readme file says "This disc contains a "UDF" file system and requires
> an
> operating system
> that supports the ISO-13346 "UDF" file system specification." I am using
> Win XP. How should I proceed now?
>
> I need only the KMDF source code for the ISOCHRONOUS pipe, can you please
> email me that to my email-id krishnansuper(a)hotmail.com
>
> Please do help.
>
> Thanks,
> Gopalakrishnan.
>
>
> "Eliyas Yakub [MSFT]" wrote:
>
>> http://www.microsoft.com/whdc/devtools/WDK/AboutWDK.mspx
>>
>>
>> "Gopalakrishnan" <Gopalakrishnan(a)discussions.microsoft.com> wrote in
>> message
>> news:4E621FBA-43C9-41C4-AC7C-F6B5D36499C3(a)microsoft.com...
>> > Hi Eliyas,
>> >
>> > Please let me know from where I can download Vista RC1 WDK, I
>> > couldn't
>> > find it in microsoft website. It would of great help if you can give
>> > me
>> > the
>> > path.
>> >
>> > Thanks,
>> > Gopalakrishnan.
>> >
>> >
>> > "Eliyas Yakub [MSFT]" wrote:
>> >
>> >> Take a look at the src\kmdf\USBSAMP in the Vista RC1 WDK. It shows how
>> >> to
>> >> talk to isoch endpoints.
>> >>
>> >> -Eliyas
>> >>
>> >>
>> >> "Gopalakrishnan" <Gopalakrishnan(a)discussions.microsoft.com> wrote in
>> >> message
>> >> news:1B760506-FD43-4E60-9C5B-E361BDAA8BF0(a)microsoft.com...
>> >> > Hi,
>> >> >
>> >> > I need a sample code for WDF driver which read data from
>> >> > isochronous
>> >> > pipe.
>> >> > Can anyone please help as I am begineer to the driver development
>> >> > work.
>> >> >
>> >> > I followed the steps given by Mr. Doron,
>> >> >
>> >> >> 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
>> >> >
>> >> > but I am getting STATUS_INVALID_PARAMETER as soon as WdfRequestSend
>> >> > is
>> >> > executed.
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > "fredsky" wrote:
>> >> >
>> >> >> Thanks,
>> >> >>
>> >> >> I just began writing of driver. For the moment, it's just dialog
>> >> >> through Control Endpoint.
>> >> >>
>> >> >> I have two remarks :
>> >> >>
>> >> >> 1) It's not so easy to use WDF because it's a whole new (for me)
>> >> >> syntax. GoodBye all habits.
>> >> >> 2) In one day I was able to dialog with my device trough Control
>> >> >> Enpoint and without writing any PNP or Power Management code (well
>> >> >> beside AddDevice, PrepareHardware, ...)
>> >> >>
>> >> >> All in all, i'm pretty impressed by WDF.
>> >> >>
>> >> >> Fred.
>> >> >>
>> >> >>
>> >> >> Tim Roberts a ?crit :
>> >> >>
>> >> >> > "fredsky" <hardware.evs(a)gmail.com> wrote:
>> >> >> >
>> >> >> > >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 ?
>> >> >> >
>> >> >> > Yes, if nothing else than the sheer volume of code. With KMDF,
>> >> >> > you
>> >> >> > don't
>> >> >> > have to write any power or PnP code at all.
>> >> >> > --
>> >> >> > - Tim Roberts, timr(a)probo.com
>> >> >> > Providenza & Boekelheide, Inc.
>> >> >>
>> >> >>
>> >>
>> >>
>> >>
>>
>>
>>


From: Gopalakrishnan on
Hi Eliyas and David,

Thanks.

When I submit a request for reading from usb isochronous pipe, the request
is getting completed with STATUS_UNSUCCESSFULL immediately. On the device
side, I write 16 bytes of data on isochronous endpoint and on the host side,
I place a request to read those sixteen bytes.

Given below are the lines of code that submits the request.

#define NUMBER_OF_PACKETS 1
#define PACKET_SIZE 16

UrbSize = GET_ISO_URB_SIZE(NUMBER_OF_PACKETS);
//size = (assign the length in bytes of the entire URB structure)
//pUrb = (PURB) ExAllocatePool(NonPagedPool, UrbSize);
WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = Request;

status = WdfMemoryCreate(
&attributes,
NonPagedPool,
0,
UrbSize,
&readBufferMemHandle,
NULL//&pUrb
);


if (!NT_SUCCESS(status)) {
TraceEvents(TRACE_LEVEL_ERROR, DBG_READ, "pUrb Memory allocation failed!");
goto Exit;
}

pUrb = WdfMemoryGetBuffer(
readBufferMemHandle,
NULL
);



//pUrb->UrbIsochronousTransfer.Hdr.Length = size;
pUrb->UrbIsochronousTransfer.Hdr.Length = (USHORT)UrbSize;
pUrb->UrbIsochronousTransfer.Hdr.Function = URB_FUNCTION_ISOCH_TRANSFER;
//pUrb->PipeHandle = pipe;
pUrb->UrbIsochronousTransfer.PipeHandle =
WdfUsbTargetPipeWdmGetPipeHandle(pipe);
pUrb->UrbIsochronousTransfer.TransferFlags = USBD_TRANSFER_DIRECTION_IN |
USBD_START_ISO_TRANSFER_ASAP;
pUrb->UrbIsochronousTransfer.TransferBufferLength = NUMBER_OF_PACKETS *
PACKET_SIZE;

status = WdfRequestRetrieveOutputMemory(Request, &reqMemory);
if(!NT_SUCCESS(status)){
TraceEvents(TRACE_LEVEL_ERROR, DBG_READ,
"WdfRequestRetrieveOutputMemory failed %!STATUS!\n", status);
goto Exit;
}

pUrb->UrbIsochronousTransfer.TransferBuffer = WdfMemoryGetBuffer
(reqMemory, &readMemSize);

//pUrb->UrbIsochronousTransfer.TransferBuffer =
ExAllocatePool(NonPagedPool, NUMBER_OF_PACKETS * PACKET_SIZE);
if( pUrb->UrbIsochronousTransfer.TransferBuffer == NULL) {
TraceEvents(TRACE_LEVEL_ERROR, DBG_READ,
"pUrb->UrbIsochronousTransfer.TransferBuffer Memory allocation failed!");
status = STATUS_INSUFFICIENT_RESOURCES;
goto Exit;
}

pUrb->UrbIsochronousTransfer.TransferBufferMDL = NULL;
pUrb->UrbIsochronousTransfer.NumberOfPackets = NUMBER_OF_PACKETS;
pUrb->UrbIsochronousTransfer.UrbLink = NULL;

for (i = 0; i<NUMBER_OF_PACKETS; i++) {
pUrb->UrbIsochronousTransfer.IsoPacket[i].Offset = i*PACKET_SIZE;
pUrb->UrbIsochronousTransfer.IsoPacket[i].Length = 0 ; //PACKET_SIZE
}

status = WdfUsbTargetPipeFormatRequestForUrb(
pipe,
Request,
readBufferMemHandle,
NULL
);
if (!NT_SUCCESS(status)) {
TraceEvents(TRACE_LEVEL_ERROR, DBG_READ,
"WdfUsbTargetPipeFormatRequestForUrb failed\n");
goto Exit;
}

WdfRequestSetCompletionRoutine(
Request,
EvtRequestReadCompletionRoutine,
pDeviceContext);
//
// Send the request asynchronously.
//
if (WdfRequestSend(Request, WdfUsbTargetPipeGetIoTarget(pipe),
WDF_NO_SEND_OPTIONS) == FALSE) {
//
// Framework couldn't send the request for some reason.
//
TraceEvents(TRACE_LEVEL_ERROR, DBG_READ, "WdfRequestSend failed\n");
status = WdfRequestGetStatus(Request);
goto Exit;

Please guide me if there is any error.









"David J. Craig" wrote:

> No, we can't. That would violate the EULA for the WDK. Why not do it
> correctly yourself? Remove any third party UDF drivers such as Nero and
> Roxio. XP can properly install the WDK.
>
> "Gopalakrishnan" <Gopalakrishnan(a)discussions.microsoft.com> wrote in message
> news:4CF27514-BA10-4384-BEAA-C2A16A5F7661(a)microsoft.com...
> > Hi Eliyas,
> > I downloaded the the 2.3 GB WDK RC1 file, but unable to install it.
> > When I try to extact the file, only the readme file is getting extracted.
> > The readme file says "This disc contains a "UDF" file system and requires
> > an
> > operating system
> > that supports the ISO-13346 "UDF" file system specification." I am using
> > Win XP. How should I proceed now?
> >
> > I need only the KMDF source code for the ISOCHRONOUS pipe, can you please
> > email me that to my email-id krishnansuper(a)hotmail.com
> >
> > Please do help.
> >
> > Thanks,
> > Gopalakrishnan.
> >
> >
> > "Eliyas Yakub [MSFT]" wrote:
> >
> >> http://www.microsoft.com/whdc/devtools/WDK/AboutWDK.mspx
> >>
> >>
> >> "Gopalakrishnan" <Gopalakrishnan(a)discussions.microsoft.com> wrote in
> >> message
> >> news:4E621FBA-43C9-41C4-AC7C-F6B5D36499C3(a)microsoft.com...
> >> > Hi Eliyas,
> >> >
> >> > Please let me know from where I can download Vista RC1 WDK, I
> >> > couldn't
> >> > find it in microsoft website. It would of great help if you can give
> >> > me
> >> > the
> >> > path.
> >> >
> >> > Thanks,
> >> > Gopalakrishnan.
> >> >
> >> >
> >> > "Eliyas Yakub [MSFT]" wrote:
> >> >
> >> >> Take a look at the src\kmdf\USBSAMP in the Vista RC1 WDK. It shows how
> >> >> to
> >> >> talk to isoch endpoints.
> >> >>
> >> >> -Eliyas
> >> >>
> >> >>
> >> >> "Gopalakrishnan" <Gopalakrishnan(a)discussions.microsoft.com> wrote in
> >> >> message
> >> >> news:1B760506-FD43-4E60-9C5B-E361BDAA8BF0(a)microsoft.com...
> >> >> > Hi,
> >> >> >
> >> >> > I need a sample code for WDF driver which read data from
> >> >> > isochronous
> >> >> > pipe.
> >> >> > Can anyone please help as I am begineer to the driver development
> >> >> > work.
> >> >> >
> >> >> > I followed the steps given by Mr. Doron,
> >> >> >
> >> >> >> 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
> >> >> >
> >> >
From: Eliyas Yakub [MSFT] on
Can you dump the IFR log of your driver to see whether the request was
failed by framework or by the underlying USB stack?

http://www.microsoft.com/whdc/driver/wdf/KMDF-build.mspx
--
-Eliyas
This posting is provided "AS IS" with no warranties, and confers no rights.
http://www.microsoft.com/whdc/driver/tips/default.mspx