Commit 4ede4e17 authored by rnk's avatar rnk Committed by Commit bot

sandbox: Fix some nt_internals.h function prototypes for Win64

NtQuerySection should use ULONG instead of SIZE_T as it is dealing with PE section sizes.

NtQueryVirtualMemory should use SIZE_T instead of ULONG as it is dealing with memory sizes.

DynamoRIO, another project that consumes these native APIs, uses the prototypes introduced by this change.

R=robertshield@chromium.org,rvargas@chromium.org
BUG=458690

Review URL: https://codereview.chromium.org/921353002

Cr-Commit-Position: refs/heads/master@{#317177}
parent 638a47d2
......@@ -51,7 +51,7 @@ base::string16 GetBackingModuleFilePath(PVOID address) {
DCHECK_NT(g_nt_query_virtual_memory_func);
// We'll start with something close to max_path characters for the name.
ULONG buffer_bytes = MAX_PATH * 2;
SIZE_T buffer_bytes = MAX_PATH * 2;
std::vector<BYTE> buffer_data(buffer_bytes);
for (;;) {
......@@ -61,7 +61,7 @@ base::string16 GetBackingModuleFilePath(PVOID address) {
if (!section_name)
break;
ULONG returned_bytes;
SIZE_T returned_bytes;
NTSTATUS ret = g_nt_query_virtual_memory_func(
NtCurrentProcess, address, MemorySectionName, section_name,
buffer_bytes, &returned_bytes);
......@@ -95,7 +95,7 @@ bool IsModuleValidImageSection(HANDLE section,
return false;
SECTION_BASIC_INFORMATION basic_info;
SIZE_T bytes_returned;
ULONG bytes_returned;
NTSTATUS ret = g_nt_query_section_func(section, SectionBasicInformation,
&basic_info, sizeof(basic_info),
&bytes_returned);
......
......@@ -250,8 +250,8 @@ typedef NTSTATUS (WINAPI *NtQuerySectionFunction)(
IN HANDLE SectionHandle,
IN SECTION_INFORMATION_CLASS SectionInformationClass,
OUT PVOID SectionInformation,
IN SIZE_T SectionInformationLength,
OUT PSIZE_T ReturnLength OPTIONAL);
IN ULONG SectionInformationLength,
OUT PULONG ReturnLength OPTIONAL);
// -----------------------------------------------------------------------
// Process and Thread
......@@ -450,8 +450,8 @@ typedef NTSTATUS (WINAPI *NtQueryVirtualMemoryFunction)(
IN PVOID BaseAddress,
IN MEMORY_INFORMATION_CLASS MemoryInformationClass,
OUT PVOID MemoryInformation,
IN ULONG MemoryInformationLength,
OUT PULONG ReturnLength OPTIONAL);
IN SIZE_T MemoryInformationLength,
OUT PSIZE_T ReturnLength OPTIONAL);
typedef NTSTATUS (WINAPI *NtProtectVirtualMemoryFunction)(
IN HANDLE ProcessHandle,
......
......@@ -385,7 +385,7 @@ bool IsValidImageSection(HANDLE section, PVOID *base, PLARGE_INTEGER offset,
return false;
SECTION_BASIC_INFORMATION basic_info;
SIZE_T bytes_returned;
ULONG bytes_returned;
ret = g_nt.QuerySection(query_section, SectionBasicInformation, &basic_info,
sizeof(basic_info), &bytes_returned);
......@@ -469,7 +469,7 @@ UNICODE_STRING* GetImageInfoFromModule(HMODULE module, uint32* flags) {
UNICODE_STRING* GetBackingFilePath(PVOID address) {
// We'll start with something close to max_path charactes for the name.
ULONG buffer_bytes = MAX_PATH * 2;
SIZE_T buffer_bytes = MAX_PATH * 2;
for (;;) {
MEMORY_SECTION_NAME* section_name = reinterpret_cast<MEMORY_SECTION_NAME*>(
......@@ -478,7 +478,7 @@ UNICODE_STRING* GetBackingFilePath(PVOID address) {
if (!section_name)
return NULL;
ULONG returned_bytes;
SIZE_T returned_bytes;
NTSTATUS ret = g_nt.QueryVirtualMemory(NtCurrentProcess, address,
MemorySectionName, section_name,
buffer_bytes, &returned_bytes);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment