/// <summary>
        /// Will call to cancel driver scan or driver update function
        /// </summary>
        /// <returns></returns>
        public bool CancelOperation()
        {
            bool retval = false;

            if (bDriverInstallIsGoingOn)
            {
                int CancelFn = DUSDKHandler.DefineConstants.CANCEL_INSTALL;
                try
                {
                    retval = DUSDKHandler.DUSDK_cancelOperation(CancelFn);
                }
                catch (Exception)
                {
                }
            }

            return(retval);
        }
        void DriverInstall(object sender, DoWorkEventArgs e)
        {
            bDriverInstallIsGoingOn = true;
            int nOsis = allDrivers.OS;

            try
            {
                int retval = DUSDKHandler.OSMT_updateDeviceDriversEx(
                    progressCallback,
                    szProductKey,
                    szAppDataLoc,
                    szTempLoc,
                    szRegistryLoc,
                    downloadProgressCallback,
                    IntPtr.Zero,
                    IntPtr.Zero,
                    0,
                    szRestorePointName,
                    allDrivers.OS,
                    (uint)DUSDKHandler.UPDATE_FLAGS.UPDATE_FLAG_RESTORE_ARCHIVE_ONLY,
                    new StringBuilder(ZipToUnpack)
                    );

                //if (retval >= (int)DUSDKHandler.PROGRESS_TYPE.PROGRESS_SCANNING && retval < (int)DUSDKHandler.PROGRESS_TYPE.PROGRESS_RETRIEVED_UPDATES_DATA)
                //{
                //    MessageBox.Show(((DUSDKHandler.PROGRESS_TYPE)(retval)).ToString());
                //}
                //else
                //{
                //    MessageBox.Show(retval.ToString());
                //}
            }
            catch (Exception)
            {
            }
            finally
            {
                bDriverInstallIsGoingOn = false;
            }
        }