From 2aaa96771558799f07b9a8562b69f58cf580b041 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 30 Nov 2009 16:30:19 -0500 Subject: KWSys: Fix process tree kill on 64-bit Windows We enumerate processes to identify those whose parent is being killed so that we can recursively kill the children. Enumeration uses the Process32(First|Next) windows API functions, which accept PROCESSENTRY32 objects to be filled. This commit corrects the declaration of the entry structure to account for its size on 64-bit Windows. --- Source/kwsys/ProcessWin32.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Source/kwsys/ProcessWin32.c b/Source/kwsys/ProcessWin32.c index ae3bde1..c5ea6db 100644 --- a/Source/kwsys/ProcessWin32.c +++ b/Source/kwsys/ProcessWin32.c @@ -2516,6 +2516,11 @@ struct _SYSTEM_PROCESS_INFORMATION /*--------------------------------------------------------------------------*/ /* Toolhelp32 API definitions. */ #define TH32CS_SNAPPROCESS 0x00000002 +#if defined(_WIN64) +typedef unsigned __int64 ProcessULONG_PTR; +#else +typedef unsigned long ProcessULONG_PTR; +#endif typedef struct tagPROCESSENTRY32 PROCESSENTRY32; typedef PROCESSENTRY32* LPPROCESSENTRY32; struct tagPROCESSENTRY32 @@ -2523,7 +2528,7 @@ struct tagPROCESSENTRY32 DWORD dwSize; DWORD cntUsage; DWORD th32ProcessID; - DWORD th32DefaultHeapID; + ProcessULONG_PTR th32DefaultHeapID; DWORD th32ModuleID; DWORD cntThreads; DWORD th32ParentProcessID; -- cgit v0.12