diff options
Diffstat (limited to 'win32/process.c')
-rw-r--r-- | win32/process.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/win32/process.c b/win32/process.c index 04775100b..5833a0323 100644 --- a/win32/process.c +++ b/win32/process.c | |||
@@ -446,6 +446,17 @@ static char *get_bb_string(DWORD pid, const char *exe, char *string) | |||
446 | char exepath[PATH_MAX]; | 446 | char exepath[PATH_MAX]; |
447 | char *name = NULL; | 447 | char *name = NULL; |
448 | int i; | 448 | int i; |
449 | DECLARE_PROC_ADDR(DWORD, GetProcessImageFileNameA, HANDLE, | ||
450 | LPSTR, DWORD); | ||
451 | DECLARE_PROC_ADDR(BOOL, EnumProcessModules, HANDLE, HMODULE *, | ||
452 | DWORD, LPDWORD); | ||
453 | DECLARE_PROC_ADDR(DWORD, GetModuleFileNameExA, HANDLE, HMODULE, | ||
454 | LPSTR, DWORD); | ||
455 | |||
456 | if (!INIT_PROC_ADDR(psapi.dll, GetProcessImageFileNameA) || | ||
457 | !INIT_PROC_ADDR(psapi.dll, EnumProcessModules) || | ||
458 | !INIT_PROC_ADDR(psapi.dll, GetModuleFileNameExA)) | ||
459 | return NULL; | ||
449 | 460 | ||
450 | if (!(proc=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, | 461 | if (!(proc=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, |
451 | FALSE, pid))) { | 462 | FALSE, pid))) { |
@@ -453,7 +464,7 @@ static char *get_bb_string(DWORD pid, const char *exe, char *string) | |||
453 | } | 464 | } |
454 | 465 | ||
455 | if (exe == NULL) { | 466 | if (exe == NULL) { |
456 | if (GetProcessImageFileName(proc, exepath, PATH_MAX) != 0) { | 467 | if (GetProcessImageFileNameA(proc, exepath, PATH_MAX) != 0) { |
457 | exe = bb_basename(exepath); | 468 | exe = bb_basename(exepath); |
458 | } | 469 | } |
459 | } | 470 | } |
@@ -470,7 +481,7 @@ static char *get_bb_string(DWORD pid, const char *exe, char *string) | |||
470 | 481 | ||
471 | for (i=0; exe != NULL && i<needed/sizeof(HMODULE); ++i) { | 482 | for (i=0; exe != NULL && i<needed/sizeof(HMODULE); ++i) { |
472 | char modname[MAX_PATH]; | 483 | char modname[MAX_PATH]; |
473 | if (GetModuleFileNameEx(proc, mlist[i], modname, sizeof(modname))) { | 484 | if (GetModuleFileNameExA(proc, mlist[i], modname, sizeof(modname))) { |
474 | if (strcasecmp(bb_basename(modname), exe) == 0) { | 485 | if (strcasecmp(bb_basename(modname), exe) == 0) { |
475 | break; | 486 | break; |
476 | } | 487 | } |