tlhelp32.h revision 4b9d6701570cb98fd36e209314239d104ec584d3
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest/*
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * Copyright (C) 1998 Patrick Spinler
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest *
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * This library is free software; you can redistribute it and/or
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * modify it under the terms of the GNU Lesser General Public
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * License as published by the Free Software Foundation; either
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * version 2.1 of the License, or (at your option) any later version.
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest *
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * This library is distributed in the hope that it will be useful,
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * but WITHOUT ANY WARRANTY; without even the implied warranty of
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * Lesser General Public License for more details.
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest *
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * You should have received a copy of the GNU Lesser General Public
e6c3a72a023407f5d1fface64356e1cc81f1af31Phill Cunnington * License along with this library; if not, write to the Free Software
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest */
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest/*
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * a choice of LGPL license versions is made available with the language indicating
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * that LGPLv2 or any later version may be used, or where a choice of which version
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * of the LGPL is applied is otherwise unspecified.
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest */
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#ifndef __WINE_TLHELP32_H
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#define __WINE_TLHELP32_H
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#ifdef __cplusplus
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrestextern "C" {
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#endif
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
f58fb92a804b356de679ca0ad458d59d95dc3af2Andrew Forrest/*
f58fb92a804b356de679ca0ad458d59d95dc3af2Andrew Forrest * CreateToolhelp32Snapshot
f58fb92a804b356de679ca0ad458d59d95dc3af2Andrew Forrest */
f58fb92a804b356de679ca0ad458d59d95dc3af2Andrew Forrest
f58fb92a804b356de679ca0ad458d59d95dc3af2Andrew Forrest#define TH32CS_SNAPHEAPLIST 0x00000001
f58fb92a804b356de679ca0ad458d59d95dc3af2Andrew Forrest#define TH32CS_SNAPPROCESS 0x00000002
f58fb92a804b356de679ca0ad458d59d95dc3af2Andrew Forrest#define TH32CS_SNAPTHREAD 0x00000004
f58fb92a804b356de679ca0ad458d59d95dc3af2Andrew Forrest#define TH32CS_SNAPMODULE 0x00000008
f58fb92a804b356de679ca0ad458d59d95dc3af2Andrew Forrest#define TH32CS_SNAPALL (TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE)
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#define TH32CS_INHERIT 0x80000000
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestHANDLE WINAPI CreateToolhelp32Snapshot(DWORD,DWORD);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest/*
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * thread entry list as created by CreateToolHelp32Snapshot
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest */
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forresttypedef struct tagTHREADENTRY32
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest{
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD dwSize;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD cntUsage;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD th32ThreadID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD th32OwnerProcessID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest LONG tpBasePri;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest LONG tpDeltaPri;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD dwFlags;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest} THREADENTRY32, *PTHREADENTRY32, *LPTHREADENTRY32;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestBOOL WINAPI Thread32First(HANDLE,LPTHREADENTRY32);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestBOOL WINAPI Thread32Next(HANDLE,LPTHREADENTRY32);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest/*
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * Process entry list as created by CreateToolHelp32Snapshot
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest */
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forresttypedef struct tagPROCESSENTRY32
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest{
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD dwSize;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD cntUsage;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD th32ProcessID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest ULONG_PTR th32DefaultHeapID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD th32ModuleID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD cntThreads;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD th32ParentProcessID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest LONG pcPriClassBase;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD dwFlags;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest char szExeFile[MAX_PATH];
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest} PROCESSENTRY32, *PPROCESSENTRY32, *LPPROCESSENTRY32;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forresttypedef struct tagPROCESSENTRY32W
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest{
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD dwSize;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD cntUsage;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD th32ProcessID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest ULONG_PTR th32DefaultHeapID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD th32ModuleID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD cntThreads;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD th32ParentProcessID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest LONG pcPriClassBase;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD dwFlags;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest WCHAR szExeFile[MAX_PATH];
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest} PROCESSENTRY32W, *PPROCESSENTRY32W, *LPPROCESSENTRY32W;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestBOOL WINAPI Process32First(HANDLE,LPPROCESSENTRY32);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestBOOL WINAPI Process32FirstW(HANDLE,LPPROCESSENTRY32W);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestBOOL WINAPI Process32Next(HANDLE,LPPROCESSENTRY32);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestBOOL WINAPI Process32NextW(HANDLE,LPPROCESSENTRY32W);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#ifdef UNICODE
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#define Process32First Process32FirstW
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#define Process32Next Process32NextW
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#define PROCESSENTRY32 PROCESSENTRY32W
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#define PPROCESSENTRY32 PPROCESSENTRY32W
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#define LPPROCESSENTRY32 LPPROCESSENTRY32W
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#endif
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest/*
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest * Module entry list as created by CreateToolHelp32Snapshot
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest */
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#define MAX_MODULE_NAME32 255
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forresttypedef struct tagMODULEENTRY32
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest{
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD dwSize;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD th32ModuleID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD th32ProcessID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD GlblcntUsage;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD ProccntUsage;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest BYTE *modBaseAddr;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD modBaseSize;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest HMODULE hModule;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest char szModule[MAX_MODULE_NAME32 + 1];
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest char szExePath[MAX_PATH];
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest} MODULEENTRY32, *PMODULEENTRY32, *LPMODULEENTRY32;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forresttypedef struct tagMODULEENTRY32W
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest{
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD dwSize;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD th32ModuleID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD th32ProcessID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD GlblcntUsage;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD ProccntUsage;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest BYTE *modBaseAddr;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD modBaseSize;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest HMODULE hModule;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest WCHAR szModule[MAX_MODULE_NAME32 + 1];
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest WCHAR szExePath[MAX_PATH];
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest} MODULEENTRY32W, *PMODULEENTRY32W, *LPMODULEENTRY32W;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestBOOL WINAPI Module32First(HANDLE,LPMODULEENTRY32);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestBOOL WINAPI Module32FirstW(HANDLE,LPMODULEENTRY32W);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestBOOL WINAPI Module32Next(HANDLE,LPMODULEENTRY32);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestBOOL WINAPI Module32NextW(HANDLE,LPMODULEENTRY32W);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#ifdef UNICODE
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#define Module32First Module32FirstW
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#define Module32Next Module32NextW
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#define MODULEENTRY32 MODULEENTRY32W
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#define PMODULEENTRY32 PMODULEENTRY32W
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#define LPMODULEENTRY32 LPMODULEENTRY32W
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#endif
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forresttypedef struct tagHEAPLIST32
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest{
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest SIZE_T dwSize;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD th32ProcessID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest ULONG_PTR th32HeapID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD dwFlags;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest} HEAPLIST32, *PHEAPLIST32, *LPHEAPLIST32;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#define HF32_DEFAULT 1
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#define HF32_SHARED 2
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestBOOL WINAPI Heap32ListFirst(HANDLE,LPHEAPLIST32);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestBOOL WINAPI Heap32ListNext(HANDLE,LPHEAPLIST32);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestBOOL WINAPI Toolhelp32ReadProcessMemory(DWORD,LPCVOID,LPVOID,SIZE_T,SIZE_T*);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forresttypedef struct tagHEAPENTRY32
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest{
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest SIZE_T dwSize;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest HANDLE hHandle;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest ULONG_PTR dwAddress;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest SIZE_T dwBlockSize;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD dwFlags;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD dwLockCount;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD dwResvd;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest DWORD th32ProcessID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest ULONG_PTR th32HeapID;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest} HEAPENTRY32, *PHEAPENTRY32, *LPHEAPENTRY32;
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestBOOL WINAPI Heap32First(LPHEAPENTRY32,DWORD,ULONG_PTR);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew ForrestBOOL WINAPI Heap32Next(LPHEAPENTRY32);
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#ifdef __cplusplus
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest} /* extern "C" */
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#endif
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest#endif /* __WINE_TLHELP32_H */
ea65b6bac936db133a660beef9d75f044dd7ce84Andrew Forrest