[Kernel] Return only one state from NtQueryVirtualMemory
This commit is contained in:
parent
eac7e2cd1f
commit
c2c263f34a
|
@ -9,6 +9,7 @@
|
||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
|
#include "xenia/base/assert.h"
|
||||||
#include "xenia/base/logging.h"
|
#include "xenia/base/logging.h"
|
||||||
#include "xenia/base/math.h"
|
#include "xenia/base/math.h"
|
||||||
#include "xenia/kernel/kernel_state.h"
|
#include "xenia/kernel/kernel_state.h"
|
||||||
|
@ -283,14 +284,17 @@ dword_result_t NtQueryVirtualMemory(
|
||||||
memory_basic_information_ptr->allocation_protect =
|
memory_basic_information_ptr->allocation_protect =
|
||||||
ToXdkProtectFlags(alloc_info.allocation_protect);
|
ToXdkProtectFlags(alloc_info.allocation_protect);
|
||||||
memory_basic_information_ptr->region_size = alloc_info.region_size;
|
memory_basic_information_ptr->region_size = alloc_info.region_size;
|
||||||
uint32_t x_state = X_MEM_FREE;
|
// https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-memory_basic_information
|
||||||
if (alloc_info.state & kMemoryAllocationReserve) {
|
// State: ... This member can be one of the following values: MEM_COMMIT,
|
||||||
x_state |= X_MEM_RESERVE;
|
// MEM_FREE, MEM_RESERVE.
|
||||||
x_state &= ~X_MEM_FREE;
|
uint32_t x_state;
|
||||||
}
|
|
||||||
if (alloc_info.state & kMemoryAllocationCommit) {
|
if (alloc_info.state & kMemoryAllocationCommit) {
|
||||||
x_state |= X_MEM_COMMIT;
|
assert_not_zero(alloc_info.state & kMemoryAllocationReserve);
|
||||||
x_state &= ~X_MEM_FREE;
|
x_state = X_MEM_COMMIT;
|
||||||
|
} else if (alloc_info.state & kMemoryAllocationReserve) {
|
||||||
|
x_state = X_MEM_RESERVE;
|
||||||
|
} else {
|
||||||
|
x_state = X_MEM_FREE;
|
||||||
}
|
}
|
||||||
memory_basic_information_ptr->state = x_state;
|
memory_basic_information_ptr->state = x_state;
|
||||||
memory_basic_information_ptr->protect = ToXdkProtectFlags(alloc_info.protect);
|
memory_basic_information_ptr->protect = ToXdkProtectFlags(alloc_info.protect);
|
||||||
|
|
Loading…
Reference in New Issue