#ifndef ROUTERWIN_H #define ROUTERWIN_H #include #include #include #include #include #include #include //includes Windows.h #include #include #include #include #include #include //typedef uint8_t u8_t ; //#ifndef WIN32_LEAN_AND_MEAN //#define WIN32_LEAN_AND_MEAN //#endif /** * @brief The Router class - General class for handling ip routing */ class RouterWin : public QObject { Q_OBJECT public: static RouterWin& Instance(); int routeAddList(const QString &gw, const QStringList &ips); bool clearSavedRoutes(); int routeDeleteList(const QString &gw, const QStringList &ips); void flushDns(); void resetIpStack(); void suspendWcmSvc(bool suspend); private: RouterWin() {} RouterWin(RouterWin const &) = delete; RouterWin& operator= (RouterWin const&) = delete; DWORD GetServicePid(LPCWSTR serviceName); BOOL ListProcessThreads(DWORD dwOwnerPID); BOOL EnableDebugPrivilege(); BOOL InitNtFunctions(); BOOL SuspendProcess(BOOL fSuspend, DWORD dwProcessId); private: QMultiMap m_ipForwardRows; bool m_suspended = false; }; #endif // ROUTERWIN_H