public async static Task <bool> DismMountImage(string imageFilePath, string mountPath, UInt32 imageIndex, bool write)
        {
            uint result_uint = DISMAPI_E_OPEN_HANDLES_UNABLE_TO_MOUNT_IMAGE_PATH;
            await Task.Run(() =>
            {
                DismInitialize();
                DismProgress progress = new DismProgress(null, null);
                uint write_n          = 0;
                if (write == true)
                {
                    write_n = DismMountMode.ReadWrite;
                }
                else
                {
                    write_n = DismMountMode.ReadOnly;
                }


                result_uint = DismMountImage(imageFilePath, mountPath, imageIndex, null, DismImageIdentifier.ImageIndex, write_n, progress.EventHandle, null, IntPtr.Zero);
            });

            if (result_uint == 134246400)
            {
                MessageBox.Show("Warning: Not enough memory resources are available to complete this operation. Code [0x8007000e]", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                Shutdown();
                return(true);
            }
            if (result_uint == ERROR_SUCCESS || result_uint == 0)
            {
                Shutdown();
                return(true);
            }
            Shutdown();
            return(false);
        }
        public static async Task <bool> DismUnmountImage(string mountPath, bool save)
        {
            DismProgress progress = new DismProgress(null, null);

            uint saved = (save == false) ? DISM_DISCARD_IMAGE : DISM_COMMIT_IMAGE;
            int  t     = 0;
            await Task.Run(() =>
            {
                DismInitialize();
                t = DismUnmountImage(mountPath, saved, progress.EventHandle, null, IntPtr.Zero);
                Shutdown();
            });

            if (t == ERROR_SUCCESS)
            {
                return(true);
            }

            MessageBox.Show("Error unmounting. Code: " + t);
            return(false);
        }