Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTDEV

Before Posting...

Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging


The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.


Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/


USB Question

OSR_Community_UserOSR_Community_User Member Posts: 110,217
Hey all -

I have a question reguarding USB. I am working on a function driver, and am
in the process of setting up the Bulk pipes I will be using.Like most, I am
examining the sample code in the DDK and have come across the
MaximumTransferSize field of the USBD_PIPE_INFORMATION struct. From what i
can read, the default size of this field is 4K (Page Size), but you can set
it to your own value. The DDK example sets it to 256.

Here is my question:

1. Are there any limits to the size you can set this to ?
2. Is the optimal value for this what you *Think* the maximum transfer size
will be.
3. If an app sends more than this value, or a device sends more than this
value, is it up to you to break the requst into chunks.
4. Who selects this value for the IN pipe from the device ? I am assuming
the host will set this value for the out pipe.


Thanks in advance !

-Chris

Comments

  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    You can set it to a larger size. I think the max is 0xFFFFFFFF and default is
    4k.

    << Hey all -

    I have a question reguarding USB. I am working on a function driver, and am
    in the process of setting up the Bulk pipes I will be using.Like most, I am
    examining the sample code in the DDK and have come across the
    MaximumTransferSize field of the USBD_PIPE_INFORMATION struct. From what i
    can read, the default size of this field is 4K (Page Size), but you can set
    it to your own value. The DDK example sets it to 256.

    Here is my question:

    1. Are there any limits to the size you can set this to ?
    2. Is the optimal value for this what you *Think* the maximum transfer size
    will be.
    3. If an app sends more than this value, or a device sends more than this
    value, is it up to you to break the requst into chunks.
    4. Who selects this value for the IN pipe from the device ? I am assuming
    the host will set this value for the out pipe.


    Thanks in advance !

    -Chris
    >>
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Kernel Debugging 13-17 May 2024 Live, Online
Developing Minifilters 1-5 Apr 2024 Live, Online
Internals & Software Drivers 11-15 Mar 2024 Live, Online
Writing WDF Drivers 20-24 May 2024 Live, Online