The buffer must always be 128 chars long in the stream, so the actual valid string data's size isn't known until we read it.  Yes, it could use CreateWritableBuffer, but it turns out to not be as useful in this case.