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.
This commit is contained in:
parent
b286e6ec7f
commit
2aaa967715
|
@ -2516,6 +2516,11 @@ struct _SYSTEM_PROCESS_INFORMATION
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
/* Toolhelp32 API definitions. */
|
/* Toolhelp32 API definitions. */
|
||||||
#define TH32CS_SNAPPROCESS 0x00000002
|
#define TH32CS_SNAPPROCESS 0x00000002
|
||||||
|
#if defined(_WIN64)
|
||||||
|
typedef unsigned __int64 ProcessULONG_PTR;
|
||||||
|
#else
|
||||||
|
typedef unsigned long ProcessULONG_PTR;
|
||||||
|
#endif
|
||||||
typedef struct tagPROCESSENTRY32 PROCESSENTRY32;
|
typedef struct tagPROCESSENTRY32 PROCESSENTRY32;
|
||||||
typedef PROCESSENTRY32* LPPROCESSENTRY32;
|
typedef PROCESSENTRY32* LPPROCESSENTRY32;
|
||||||
struct tagPROCESSENTRY32
|
struct tagPROCESSENTRY32
|
||||||
|
@ -2523,7 +2528,7 @@ struct tagPROCESSENTRY32
|
||||||
DWORD dwSize;
|
DWORD dwSize;
|
||||||
DWORD cntUsage;
|
DWORD cntUsage;
|
||||||
DWORD th32ProcessID;
|
DWORD th32ProcessID;
|
||||||
DWORD th32DefaultHeapID;
|
ProcessULONG_PTR th32DefaultHeapID;
|
||||||
DWORD th32ModuleID;
|
DWORD th32ModuleID;
|
||||||
DWORD cntThreads;
|
DWORD cntThreads;
|
||||||
DWORD th32ParentProcessID;
|
DWORD th32ParentProcessID;
|
||||||
|
|
Loading…
Reference in New Issue