Hi,
IOException thrown when SafeHandles.Preallocate() failed because of disk is full should have correct HResult (unchecked((int)0x80070070)).
In the current implementation, the HResult corresponds to the generic error code for an IO problem (-2146232800), because the real HResult is not passed to the IOException constructor.
Thanks.