[ros-dev] Networking

Alex Ionescu ionucu at videotron.ca
Wed May 11 22:34:03 CEST 2005


WaxDragon wrote:

>
>I've emailed arty the details of what I have already.  c0000023 is
>STATUS_BUFFER_TOO_SMALL.
>
>WD
>
>  
>
Art and I have found the problem. Art was failing the IRP with 
STATUS_BUFFER_TOOS_AMALL and expecting the I/O Manager to fill in 
UserIosb->Information, so that the usermode application could then 
request the correct number of bytes. Since this does not happen on 
NT/ROS (the source of much heated discussion :P), it fails after my 
patches. After some analysis of 3rd-party drivers and some reading, the 
solutions are either:

1) return STATUS_BUFFER_OVERFLOW which is a 'warning', so the IO manager 
will write the stuff back. But this would break compatibility with apsp 
which use TDI directly to query this information
2) do like I have seen other 3rd-part drivers do, which is to wrap in 
SEH somethign along: *Irp->UserIosb = Irp->IoStatus; and then return 
STATUS_BUFFER_OVERFLOW. After testing, I can confirm method #2...Art 
will be fixing this.

I want to mention this in case anyone is aware of any other of our 
drivers which does this trick and hopes the I/O manager will return the 
UserIosb (it did befor emy changes). I'll grep the tree for any 
STATUS_BUFFER_OVERFLOW in /drivers myself.

Best regards,
Alex Ionescu


More information about the Ros-dev mailing list