#ifndef KMANAGER_H #define KMANAGER_H #include #include "..\client.h" #include "..\threadpool.h" #include "driver.h" namespace kernelmode { class KManager { std::unique_ptr driver_interface; std::shared_ptr thread_pool; public: KManager( LPCWSTR DriverName, std::shared_ptr ThreadPool, std::shared_ptr ReportInterface); VOID RunNmiCallbacks(); VOID VerifySystemModules(); VOID MonitorCallbackReports(); VOID DetectSystemVirtualization(); VOID EnumerateHandleTables(); VOID RequestModuleExecutableRegionsForIntegrityCheck(); VOID ScanPoolsForUnlinkedProcesses(); VOID PerformIntegrityCheck(); VOID CheckForAttachedThreads(); VOID ValidateProcessModules(); VOID RequestHardwareInformation( global::headers::SYSTEM_INFORMATION* SystemInformation ); }; } #endif