コード例 #1
0
 public static extern void DismUnmountImage(
     [NotNull] string mountPath,
     DismCommitAndUnmountFlags flags,
     [CanBeNull] SafeWaitHandle cancelEvent,
     [CanBeNull] DismProgressCallback progress,
     IntPtr userData
     );
コード例 #2
0
 public static extern void DismCommitImage(
     uint session,
     DismCommitAndUnmountFlags flags,
     [CanBeNull] SafeWaitHandle cancelEvent,
     [CanBeNull] DismProgressCallback progress,
     IntPtr userData
     );
コード例 #3
0
ファイル: WindowsImage.cs プロジェクト: yang123vc/ManagedWim
        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
                               )
                           );
        }