private async Task <IntPtr> CreateDriveHandle() { return(await Task.Run(() => { var handle = Win32Functions.CreateFile("\\\\.\\" + _driveName + ':', Win32Functions.GENERIC_READ, Win32Functions.FILE_SHARE_READ, IntPtr.Zero, Win32Functions.OPEN_EXISTING, 0, IntPtr.Zero); if (IsValidHandle(handle)) { return handle; } throw new InvalidOperationException("Drive '" + _driveName + "' is currently opened."); })); }