I think that different behaviours are possible depending on the purpose of this function. If it is "get hash values from the current position of the stream, ignoring other data that maybe were already processed by other functions", then Position = 0 must be removed. But if it is "get hash values from the beginning of the stream", then Position = 0 is advisable.
For the second issue, the using InputStream must be removed, because it will alter (dispose) the stream. If required by the callers, you can also keep the current position (Dim p = InputStream.Position at the begining, InputStream.Position = p at the end, in case you want to reread the hash).