mirror of
https://github.com/momo5502/emulator.git
synced 2026-01-23 13:41:02 +00:00
Support for KnownDLLs and Some Refactoring
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include "windows_objects.hpp"
|
||||
#include "emulator_thread.hpp"
|
||||
#include "port.hpp"
|
||||
#include "user_handle_table.hpp"
|
||||
|
||||
#include "apiset/apiset.hpp"
|
||||
|
||||
@@ -66,7 +67,8 @@ struct process_context
|
||||
base_allocator(emu),
|
||||
peb64(emu),
|
||||
process_params64(emu),
|
||||
kusd(memory, clock)
|
||||
kusd(memory, clock),
|
||||
user_handles(memory)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -86,10 +88,17 @@ struct process_context
|
||||
void serialize(utils::buffer_serializer& buffer) const;
|
||||
void deserialize(utils::buffer_deserializer& buffer);
|
||||
|
||||
generic_handle_store* get_handle_store(handle handle);
|
||||
|
||||
// WOW64 support flag - set during process setup based on executable architecture
|
||||
bool is_wow64_process{false};
|
||||
|
||||
generic_handle_store* get_handle_store(handle handle);
|
||||
uint32_t windows_build_number{0};
|
||||
|
||||
bool is_older_windows_build() const
|
||||
{
|
||||
return windows_build_number < 26040;
|
||||
}
|
||||
|
||||
callbacks* callbacks_{};
|
||||
|
||||
@@ -118,6 +127,8 @@ struct process_context
|
||||
std::optional<emulator_object<RTL_USER_PROCESS_PARAMETERS32>> process_params32;
|
||||
std::optional<uint64_t> rtl_user_thread_start32{};
|
||||
|
||||
user_handle_table user_handles;
|
||||
handle default_monitor_handle{};
|
||||
handle_store<handle_types::event, event> events{};
|
||||
handle_store<handle_types::file, file> files{};
|
||||
handle_store<handle_types::section, section> sections{};
|
||||
@@ -125,7 +136,7 @@ struct process_context
|
||||
handle_store<handle_types::semaphore, semaphore> semaphores{};
|
||||
handle_store<handle_types::port, port_container> ports{};
|
||||
handle_store<handle_types::mutant, mutant> mutants{};
|
||||
handle_store<handle_types::window, window> windows{};
|
||||
user_handle_store<handle_types::window, window> windows{user_handles};
|
||||
handle_store<handle_types::timer, timer> timers{};
|
||||
handle_store<handle_types::registry, registry_key, 2> registry_keys{};
|
||||
std::map<uint16_t, atom_entry> atoms{};
|
||||
|
||||
Reference in New Issue
Block a user