requires CreateCallback
Now supports byte range requests