SRB_STATUS_DATA_OVERRUN v.s. a underrun?

How can you tell that a over or a underrun has occured if they both return
SRB_STATUS_DATA_OVERRUN?


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

I don’t know if it is documented anywhere, but by tradition the
Srb.DataTransferLength is set to the actual amount transferred on
completion. If Srb.DataTransferLength < YourOriginalRequestLength and
Srb.SrbStatus is SRB_STATUS_DATA_OVERRUN then you have an underrun.

Aside from Inquiry operations, why would a disk, for example, ever have an
under or overrun condition? This would be an application (e.g. filesystem)
programmer error, right?

-----Original Message-----
From: xxxxx@qwest.net [mailto:xxxxx@qwest.net]
Sent: Tuesday, November 06, 2001 5:33 AM
To: NT Developers Interest List
Subject: [ntdev] SRB_STATUS_DATA_OVERRUN v.s. a underrun?

How can you tell that a over or a underrun has occured if they both return
SRB_STATUS_DATA_OVERRUN?


You are currently subscribed to ntdev as: xxxxx@stratus.com To
unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

I don’t know if it is documented anywhere, but by tradition the
Srb.DataTransferLength is set to the actual amount transferred on
completion. If Srb.DataTransferLength < YourOriginalRequestLength and
Srb.SrbStatus is SRB_STATUS_DATA_OVERRUN then you have an underrun.

> but I thought Srb.DataTransferLength would return the number of bytes
needed to complete the transfer on the overrun condition?

Aside from Inquiry operations, why would a disk, for example, ever have an
under or overrun condition? This would be an application (e.g. filesystem)
programmer error, right?

> Yea well…we always ask for the MAX number of bytes possible and get
back what the hardware decides to give us.

Thx


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> >> but I thought Srb.DataTransferLength would return the number of bytes

needed to complete the transfer on the overrun condition?

Without knowledge of how to interpret the SCSI command block, I don’t think
a host adapter can know this number. About all a host adapter can do is
send off the command to the device, start doing the transfer, and then when
too many bytes need to be transferred, stop the transfer. I haven’t offhand
seen any way a device could report back to the adapter that N more bytes
are needed to finish the command, allowing the miniport to return the size
needed to satisfy an overrun.

  • Jan

You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com