Re: Data Corruption on win98SE when IRP is re-issued in completion routine


Calling MmPrepareMdlForReuse() in the completion routine seems to have fixed
the problem on Win98.

BTW, what is the optimal chunk size that is used? Is there any max limit for
chunk size?

Let me know.\

Thanks in advance.

From: Walter Oney
>Reply-To: “Windows System Software Developers Interest List”
>To: “Windows System Software Developers Interest List”
>Subject: [ntdev] Re: Data Corruption on win98SE when IRP is re-issued in
>completion routine
>Date: Fri, 05 Sep 2003 14:27:08 -0400
> wrote:
> > We have a bulk usb driver. Corrupt data is sent when large amounts of
> > (around 2mb) is sent on win98 SE if the IRP is resubmitted in completion
> > routine to perform subsequent chunks of data transfer as part of the
> > data transfer. It works perfectly well on win2k and winxp. The data
> > corruption happens only when large amounts of data is sent to the
> > I followed the sample code given in Walter Oney’s book “Programming the
> > Microsoft WDM Ist edition” page 526.
>I’d like to suggest that you use the code from the 2d edition. At least
>download the last service pack for the 1st edition, which contains a bug
>fix that may be relevant to the problem you’re describing.
>Walter Oney, Consulting and Training
>Basic and Advanced Driver Programming Seminars
>Check out our schedule at
>Questions? First check the Kernel Driver FAQ at
>You are currently subscribed to ntdev as:
>To unsubscribe send a blank email to

Get 10MB of e-mail storage! Sign up for Hotmail Extra Storage.