public async Task UnmountAsync( ImageCommitOptions options, bool commit, CancellationToken cancellationToken, [CanBeNull] IProgress <DismEventArgs> progress ) { DismCommitAndUnmountFlags flags = 0; if ((options & ImageCommitOptions.Append) != 0) { flags |= DismCommitAndUnmountFlags.Append; } if ((options & ImageCommitOptions.GenerateIntegrityData) != 0) { flags |= DismCommitAndUnmountFlags.GenerateIntegrity; } if (commit) { flags |= DismCommitAndUnmountFlags.Commit; } else { flags |= DismCommitAndUnmountFlags.Discard; } await Task.Run(() => NativeMethods.DismUnmountImage( this._mountPath, flags, cancellationToken.WaitHandle.SafeWaitHandle, (current, total, userData) => progress?.Report(new DismEventArgs(current, total)), IntPtr.Zero ) ); }
public async Task UnmountAsync( ImageCommitOptions options, bool commit, [CanBeNull] IProgress <DismEventArgs> progress ) => await this.UnmountAsync(options, commit, CancellationToken.None, progress);
public async Task UnmountAsync( ImageCommitOptions options, bool commit, CancellationToken cancellationToken ) => await this.UnmountAsync(options, commit, cancellationToken, null);
public void Unmount( ImageCommitOptions options, bool commit, [CanBeNull] IProgress <DismEventArgs> progress ) => Task.Run <Task>(async() => await this.UnmountAsync(options, commit, progress)).Wait();
public void Unmount( ImageCommitOptions options, bool commit ) => Task.Run <Task>(async() => await this.UnmountAsync(options, commit)).Wait();
public Task CommitChangesAsync( ImageCommitOptions options, [CanBeNull] IProgress <DismEventArgs> progress ) => this.CommitChangesAsync(options, CancellationToken.None, progress);
public Task CommitChangesAsync( ImageCommitOptions options, CancellationToken cancellationToken ) => this.CommitChangesAsync(options, cancellationToken, null);