protected override void Dispose (bool disposing) { if (disposed) return; disposed = true; CloseHandle (handle); Marshal.FreeHGlobal (write_overlapped); Marshal.FreeHGlobal (read_overlapped); }