- #nullable enable
- using IPA.Config;
- using IPA.Logging;
-
- namespace IPA.AntiMalware
- {
- /// <summary>
- /// Provides a way to access BSIPA's Anti-Malware engine.
- /// </summary>
- /// <see cref="Engine"/>
- /// <see cref="IAntiMalware"/>
- public static class AntiMalwareEngine
- {
- /// <summary>
- /// Gets the current Anti-Malware engine.
- /// </summary>
- public static IAntiMalware Engine { get; } = InitializeEngine();
-
- private static IAntiMalware InitializeEngine()
- {
- IAntiMalware? engine = null;
- if (SelfConfig.AntiMalware_.UseIfAvailable_)
- {
- #if !NET35
- engine = WindowsCOMAntiMalware.TryInitialize();
- #endif
- engine ??= WindowsWin32AntiMalware.TryInitialize();
- }
- engine ??= new NoopAntiMalware();
-
- Logger.AntiMalware.Debug($"Antimalware engine initialized with {engine.GetType()}");
-
- return engine;
- }
- }
- }
|