public void CancelIO() { if (IsOpen) { NativeMethods.CancelIoEx(SafeReadHandle.DangerousGetHandle(), IntPtr.Zero); } }
public ReadStatus ReadFile(byte[] inputBuffer) { EnsureReadHandleActive(); try { if (NativeMethods.ReadFile(SafeReadHandle.DangerousGetHandle(), inputBuffer, (uint)inputBuffer.Length, out uint bytesRead, IntPtr.Zero)) { return(ReadStatus.Success); } else { return(ReadStatus.NoDataRead); } }
private void CloseFileStreamIO() { if (FileStream != null) { try { FileStream.Close(); } catch { } } FileStream = null; if (SafeReadHandle != null && !SafeReadHandle.IsInvalid) { try { if (!SafeReadHandle.IsClosed) { SafeReadHandle.Close(); } } catch (IOException) { } } SafeReadHandle = null; }