mirror of
https://github.com/momo5502/hypervisor.git
synced 2025-07-03 17:51:52 +00:00
Cleanup on process termination
This commit is contained in:
@ -19,11 +19,13 @@ public:
|
||||
|
||||
bool is_enabled() const;
|
||||
|
||||
bool install_ept_hook(const void* destination, const void* source, size_t length,
|
||||
const utils::list<vmx::ept_translation_hint>& hints = {});
|
||||
bool install_ept_hook(const void* destination, const void* source, size_t length, process_id source_pid,
|
||||
process_id target_pid, const utils::list<vmx::ept_translation_hint>& hints = {});
|
||||
|
||||
bool install_ept_code_watch_point(uint64_t physical_page, bool invalidate = true) const;
|
||||
bool install_ept_code_watch_points(const uint64_t* physical_pages, size_t count) const;
|
||||
bool install_ept_code_watch_point(uint64_t physical_page, process_id source_pid, process_id target_pid,
|
||||
bool invalidate = true) const;
|
||||
bool install_ept_code_watch_points(const uint64_t* physical_pages, size_t count, process_id source_pid,
|
||||
process_id target_pid) const;
|
||||
|
||||
void disable_all_ept_hooks() const;
|
||||
|
||||
@ -31,6 +33,8 @@ public:
|
||||
|
||||
static hypervisor* get_instance();
|
||||
|
||||
void handle_process_termination(process_id process);
|
||||
|
||||
private:
|
||||
uint32_t vm_state_count_{0};
|
||||
vmx::state** vm_states_{nullptr};
|
||||
@ -43,10 +47,7 @@ private:
|
||||
void allocate_vm_states();
|
||||
void free_vm_states();
|
||||
|
||||
bool try_install_ept_hook_on_core(const void* destination, const void* source, size_t length,
|
||||
const utils::list<vmx::ept_translation_hint>& hints = {});
|
||||
void install_ept_hook_on_core(const void* destination, const void* source, size_t length,
|
||||
const utils::list<vmx::ept_translation_hint>& hints = {});
|
||||
void invalidate_cores() const;
|
||||
|
||||
vmx::state* get_current_vm_state() const;
|
||||
};
|
||||
|
Reference in New Issue
Block a user