Esempio n. 1
0
        public bool DeleteDriver(DriverStoreEntry driverStoreEntry, bool forceDelete)
        {
            if (driverStoreEntry == null)
            {
                throw new ArgumentNullException(nameof(driverStoreEntry));
            }

            switch (this.Type)
            {
            case DriverStoreType.Online:
                try
                {
                    SetupAPI.DeleteDriver(driverStoreEntry, forceDelete);
                }
                catch (Win32Exception ex)
                {
                    Trace.TraceError(ex.ToString());
                    return(false);
                }

                return(true);

            case DriverStoreType.Offline:
                throw new NotImplementedException();

            default:
                throw new NotSupportedException();
            }
        }
Esempio n. 2
0
        public bool DeleteDriver(DriverStoreEntry driverStoreEntry, bool forceDelete)
        {
            if (driverStoreEntry == null)
            {
                throw new ArgumentNullException(nameof(driverStoreEntry));
            }

            switch (this.Type)
            {
            case DriverStoreType.Online:
                return(SetupAPI.DeleteDriver(driverStoreEntry, forceDelete));

            case DriverStoreType.Offline:
                DismApi.Initialize(DismLogLevel.LogErrors);

                try
                {
                    using (DismSession session = this.GetSession())
                    {
                        DismApi.RemoveDriver(session, driverStoreEntry.DriverPublishedName);
                    }
                }
                finally
                {
                    DismApi.Shutdown();
                }

                return(true);

            default:
                throw new NotSupportedException();
            }
        }
Esempio n. 3
0
        public bool DeleteDriver(DriverStoreEntry driverStoreEntry, bool forceDelete)
        {
            if (driverStoreEntry == null)
            {
                throw new ArgumentNullException(nameof(driverStoreEntry));
            }

            switch (this.Type)
            {
            case DriverStoreType.Online:
                try
                {
                    SetupAPI.DeleteDriver(driverStoreEntry, forceDelete);
                }
                catch (Win32Exception ex)
                {
                    Trace.TraceError(ex.ToString());
                    return(false);
                }

                return(true);

            case DriverStoreType.Offline:
                try
                {
                    DismApi.Initialize(DismLogLevel.LogErrors);

                    try
                    {
                        using (DismSession session = this.GetSession())
                        {
                            DismApi.RemoveDriver(session, driverStoreEntry.DriverPublishedName);
                        }
                    }
                    finally
                    {
                        DismApi.Shutdown();
                    }
                }
                catch (DismRebootRequiredException)
                {
                    return(true);
                }
                catch (DismException ex)
                {
                    Trace.TraceError(ex.ToString());
                    return(false);
                }

                return(true);

            default:
                throw new NotSupportedException();
            }
        }