From outside SerialPort object, it seems to make no difference what the size of the write buffer is, and whether or not it is full.

Using synchronous writing, the write method blocks until all the data has been sent and the buffer is empty.

Using async writing, the data is queued and the program continues on going. The callback method is not called until the write operation is completed and the data is out of the buffer.

The behavior of the serialport object seems to be the same regardless of how much data is in the buffer and whether or not the buffer is full. No errors seem to happen when the write buffer is full.

So, why be able to check BytesToWrite and WriteBufferSize at all? Is there any way that SerialPort behaves differently when the write buffer is full?