mirror-ac/user/um/umanager.h

35 lines
744 B
C
Raw Normal View History

2023-08-17 10:45:50 +02:00
#ifndef UMANAGER_H
#define UMANAGER_H
2023-08-15 14:02:17 +02:00
#include <string>
2023-08-16 11:28:46 +02:00
#include <winternl.h>
2023-08-15 14:02:17 +02:00
#include <Windows.h>
2023-08-16 11:28:46 +02:00
#include <mutex>
#include <thread>
#include <vector>
2023-08-15 14:02:17 +02:00
2023-08-16 11:28:46 +02:00
#include "process.h"
namespace usermode
2023-08-15 14:02:17 +02:00
{
2023-08-16 12:47:09 +02:00
/*
* The manager class is meant to abstract away the interaction between the Process
* class and the threadpool class to allow a single thread (or multiple) to easily run
* the core business logic of running tasks in a certain order.
*/
2023-08-17 10:45:50 +02:00
class UManager
2023-08-15 14:02:17 +02:00
{
2023-08-16 11:28:46 +02:00
std::unique_ptr<Process> process;
2023-08-17 10:45:50 +02:00
std::shared_ptr<global::ThreadPool> thread_pool;
2023-08-15 14:02:17 +02:00
public:
2023-08-17 10:45:50 +02:00
UManager( std::shared_ptr<global::ThreadPool> ThreadPool );
~UManager();
2023-08-16 11:28:46 +02:00
void ValidateProcessThreads();
2023-08-17 10:45:50 +02:00
void ValidateProcessMemory();
void ValidateProcessModules();
2023-08-15 14:02:17 +02:00
};
}
#endif