diff --git a/src/windows-emulator/process_context.cpp b/src/windows-emulator/process_context.cpp index ecea72ad..4825c79f 100644 --- a/src/windows-emulator/process_context.cpp +++ b/src/windows-emulator/process_context.cpp @@ -211,15 +211,15 @@ namespace for (size_t i = 0; i < api_set_map->Count; i++) { - const auto entry = reinterpret_cast(reinterpret_cast(api_set_map) + + const auto entry = reinterpret_cast(reinterpret_cast(api_set_map) + api_set_map->EntryOffset + i * sizeof(API_SET_NAMESPACE_ENTRY)); - std::u16string name(reinterpret_cast(reinterpret_cast(api_set_map) + entry->NameOffset), + std::u16string name(reinterpret_cast(reinterpret_cast(api_set_map) + entry->NameOffset), entry->NameLength / sizeof(char16_t)); - const auto value = reinterpret_cast(reinterpret_cast(api_set_map) + entry->ValueOffset + + const auto value = reinterpret_cast(reinterpret_cast(api_set_map) + entry->ValueOffset + (entry->ValueCount - 1) * sizeof(API_SET_VALUE_ENTRY)); - std::u16string base_name(reinterpret_cast(reinterpret_cast(api_set_map) + value->ValueOffset), + std::u16string base_name(reinterpret_cast(reinterpret_cast(api_set_map) + value->ValueOffset), value->ValueLength / sizeof(char16_t)); apiset[name + u".dll"] = base_name;