Module: wine Branch: master Commit: 69029d70f6c712b46dbc82703093db4042082b61 URL: https://source.winehq.org/git/wine.git/?a=commit;h=69029d70f6c712b46dbc82703...
Author: Michael Müller michael@fds-team.de Date: Sun Mar 4 10:20:04 2018 -0600
ntdll: Implement ProcessImageFileNameWin32 in NtQueryInformationProcess.
Signed-off-by: Zebediah Figura z.figura12@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/kernel32/tests/process.c | 16 ++++++++++------ dlls/ntdll/process.c | 4 ++-- include/winternl.h | 9 +++++++++ 3 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c index cbca00e..b1a4539 100644 --- a/dlls/kernel32/tests/process.c +++ b/dlls/kernel32/tests/process.c @@ -3501,16 +3501,16 @@ static void test_process_info(void) sizeof(buf) /* ProcessHandleTracing */, sizeof(ULONG) /* ProcessIoPriority */, sizeof(ULONG) /* ProcessExecuteFlags */, -#if 0 /* FIXME: Add remaining classes */ - ProcessResourceManagement, - sizeof(ULONG) /* ProcessCookie */, + 0 /* FIXME: sizeof(?) ProcessTlsInformation */, + 0 /* FIXME: sizeof(?) ProcessCookie */, sizeof(SECTION_IMAGE_INFORMATION) /* ProcessImageInformation */, - sizeof(PROCESS_CYCLE_TIME_INFORMATION) /* ProcessCycleTime */, + 0 /* FIXME: sizeof(PROCESS_CYCLE_TIME_INFORMATION) ProcessCycleTime */, sizeof(ULONG) /* ProcessPagePriority */, 40 /* ProcessInstrumentationCallback */, - sizeof(PROCESS_STACK_ALLOCATION_INFORMATION) /* ProcessThreadStackAllocation */, - sizeof(PROCESS_WS_WATCH_INFORMATION_EX[]) /* ProcessWorkingSetWatchEx */, + 0 /* FIXME: sizeof(PROCESS_STACK_ALLOCATION_INFORMATION) ProcessThreadStackAllocation */, + 0 /* FIXME: sizeof(PROCESS_WS_WATCH_INFORMATION_EX[]) ProcessWorkingSetWatchEx */, sizeof(buf) /* ProcessImageFileNameWin32 */, +#if 0 /* FIXME: Add remaining classes */ sizeof(HANDLE) /* ProcessImageFileMapping */, sizeof(PROCESS_AFFINITY_UPDATE_MODE) /* ProcessAffinityUpdateMode */, sizeof(PROCESS_MEMORY_ALLOCATION_MODE) /* ProcessMemoryAllocationMode */, @@ -3582,6 +3582,9 @@ static void test_process_info(void) case ProcessDefaultHardErrorMode: case ProcessHandleCount: case ProcessImageFileName: + case ProcessImageInformation: + case ProcessPagePriority: + case ProcessImageFileNameWin32: ok(status == STATUS_SUCCESS, "for info %u expected STATUS_SUCCESS, got %08x (ret_len %u)\n", i, status, ret_len); break;
@@ -3599,6 +3602,7 @@ static void test_process_info(void) case ProcessExecuteFlags: case ProcessDebugPort: case ProcessDebugFlags: + case ProcessCookie: todo_wine ok(status == STATUS_ACCESS_DENIED, "for info %u expected STATUS_ACCESS_DENIED, got %08x (ret_len %u)\n", i, status, ret_len); break; diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c index 835d7e6..b299287 100644 --- a/dlls/ntdll/process.c +++ b/dlls/ntdll/process.c @@ -515,8 +515,8 @@ NTSTATUS WINAPI NtQueryInformationProcess( } break; case ProcessImageFileName: - /* FIXME: this will return a DOS path. Windows returns an NT path. Changing this would require also changing kernel32.QueryFullProcessImageName. - * The latter may be harder because of the lack of RtlNtPathNameToDosPathName. */ + /* FIXME: Should return a device path */ + case ProcessImageFileNameWin32: SERVER_START_REQ(get_dll_info) { UNICODE_STRING *image_file_name_str = ProcessInformation; diff --git a/include/winternl.h b/include/winternl.h index c3cca80..6733977 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -853,6 +853,15 @@ typedef enum _PROCESSINFOCLASS { ProcessDebugFlags = 31, ProcessHandleTracing = 32, ProcessExecuteFlags = 34, + ProcessTlsInformation = 35, + ProcessCookie = 36, + ProcessImageInformation = 37, + ProcessCycleTime = 38, + ProcessPagePriority = 39, + ProcessInstrumentationCallback = 40, + ProcessThreadStackAllocation = 41, + ProcessWorkingSetWatchEx = 42, + ProcessImageFileNameWin32 = 43, MaxProcessInfoClass } PROCESSINFOCLASS, PROCESS_INFORMATION_CLASS;