So if I follow correctly, we do not care about how much bytes we read during the call to `AdbReadEndpointAsync` as it looks like we ignore its `read` argument. Then as it is async we call `AdbHasOvelappedIoComplated` to see when it is done reading.
But I don't fully understand the purpose of `AdbGetOvelappedIoResult`. This time, we do care about its `read` argument. It looks like it testify the number of byte being read during AdbReadEndpointAsync, but aren't we introducing some collusion by reusing the same `read` variable for both?