mirror of
https://github.com/momo5502/emulator.git
synced 2026-01-30 16:11:01 +00:00
Prepare mutex support
This commit is contained in:
@@ -337,6 +337,8 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
constexpr auto KNOWN_DLLS_DIRECTORY = make_pseudo_handle(0x1, handle_types::directory);
|
constexpr auto KNOWN_DLLS_DIRECTORY = make_pseudo_handle(0x1, handle_types::directory);
|
||||||
|
constexpr auto BASE_NAMED_OBJECTS_DIRECTORY = make_pseudo_handle(0x2, handle_types::directory);
|
||||||
|
|
||||||
constexpr auto KNOWN_DLLS_SYMLINK = make_pseudo_handle(0x1, handle_types::symlink);
|
constexpr auto KNOWN_DLLS_SYMLINK = make_pseudo_handle(0x1, handle_types::symlink);
|
||||||
constexpr auto SHARED_SECTION = make_pseudo_handle(0x1, handle_types::section);
|
constexpr auto SHARED_SECTION = make_pseudo_handle(0x1, handle_types::section);
|
||||||
|
|
||||||
|
|||||||
@@ -548,13 +548,20 @@ namespace
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
const emulator_object<UNICODE_STRING> sysdir_obj{c.emu, obj_address + windir_obj.size()};
|
const emulator_object<UNICODE_STRING> sysdir_obj{c.emu, windir_obj.value() + windir_obj.size()};
|
||||||
sysdir_obj.access([&](UNICODE_STRING& ucs)
|
sysdir_obj.access([&](UNICODE_STRING& ucs)
|
||||||
{
|
{
|
||||||
c.proc.base_allocator.make_unicode_string(ucs, L"C:\\WINDOWS\\System32");
|
c.proc.base_allocator.make_unicode_string(ucs, L"C:\\WINDOWS\\System32");
|
||||||
ucs.Buffer = reinterpret_cast<wchar_t*>(reinterpret_cast<uint64_t>(ucs.Buffer) - obj_address);
|
ucs.Buffer = reinterpret_cast<wchar_t*>(reinterpret_cast<uint64_t>(ucs.Buffer) - obj_address);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const emulator_object<UNICODE_STRING> base_dir_obj{c.emu, sysdir_obj.value() + sysdir_obj.size()};
|
||||||
|
base_dir_obj.access([&](UNICODE_STRING& ucs)
|
||||||
|
{
|
||||||
|
c.proc.base_allocator.make_unicode_string(ucs, L"\\Sessions\\1\\BaseNamedObjects");
|
||||||
|
ucs.Buffer = reinterpret_cast<wchar_t*>(reinterpret_cast<uint64_t>(ucs.Buffer) - obj_address);
|
||||||
|
});
|
||||||
|
|
||||||
if (view_size)
|
if (view_size)
|
||||||
{
|
{
|
||||||
view_size.write(shared_section_size);
|
view_size.write(shared_section_size);
|
||||||
@@ -1561,6 +1568,12 @@ namespace
|
|||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (object_name == L"\\Sessions\\1\\BaseNamedObjects")
|
||||||
|
{
|
||||||
|
directory_handle.write(BASE_NAMED_OBJECTS_DIRECTORY);
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
return STATUS_NOT_SUPPORTED;
|
return STATUS_NOT_SUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user