Max Transfer lenght


I am developing a storport mini port driver.Driver can handle a maximum of 256K size in a single IO request. Hence setting the value in port configuration information as follows:
pConfigInfo->MaximumTransferLength = 256K.
pConfigInfo->NumberOfPhysicalBreaks = 64

But still driver is getting a IO request of more than 256k through a custom application. Application uses IOCTL path(SRB_IO_CONTROL).

Where am i going wrong or should i set anywhere else to limit the IO request size?


Nobody should be sending SRB_IO_CONTROLs to your driver but some application you’ve developed. At least not SRB_IO_CONTROLs with control codes that your driver understands.

As far as I know, SRB_IO_CONTROL is a purely private mechanism between an app and the mini-port. The port driver doesn’t interpret these requests (beyond a few very basic fields).


We have the developed the custom application, hence the driver understands the Io sent by the app.

Is there a way to control the IO request size sent by the application?


You control the application, just send SHORTER I/O requests. There’s a LENGTH parameter.

I bet I’m missing some key point and don’t understand the question :slight_smile:


>Is there a way to control the IO request size sent by the application?
As Peter said it is better to do in an application. Before initiating any I/O request the application could retrieve from the driver the maximum transfer length. Using this number the application would adjust length of each transfer packet.

Igor Sharovar