So, I understand that you're saying this behavior is intentional. If that is the case then I suggest to update the documentation of the Read() method to make this more clear. There are two points that made me believe that it will read the data contineously: First of all it says that is reading data from the stream. I understand that a stream is basically a representation of a potentially limitless data source, and since I provide it with a buffer, I can read as much as I want in a single call. If it had said "Read a portion of data from the stream, according to the limit of the packet size (stream implementation specific)" or something like that, I would have been more cautious. The second point is the documentation of the DataLen parameters. It is suggesting that it specifies how much data I will read, but in reality it is _only_ the size of the buffer from pData. Or does it serve any other function as well? It certainly is not the exact number of bytes that will be read, which lead to my example. Anyway, thanks for clearing it up. I will change my object and give it a try. I am sure it will work since I saw the missing byte already in the IO image. I just didn't feel like this was the right solution haha.
... View more