tlhelp32.h

来自「这是VCF框架的代码」· C头文件 代码 · 共 319 行

H
319
字号
/*****************************************************************************\*                                                                             ** tlhelp32.h -  WIN32 tool help functions, types, and definitions             **                                                                             ** Version 1.0                                                                 **                                                                             ** NOTE: windows.h/winbase.h must be #included first                           **                                                                             ** Copyright (c) Microsoft Corp.  All rights reserved.                         **                                                                             *\*****************************************************************************/#ifndef _INC_TOOLHELP32#define _INC_TOOLHELP32#if _MSC_VER > 1000#pragma once#endif#ifdef __cplusplusextern "C" {            /* Assume C declarations for C++ */#endif  /* __cplusplus */#define MAX_MODULE_NAME32 255/****** Shapshot function **********************************************/HANDLEWINAPICreateToolhelp32Snapshot(    DWORD dwFlags,    DWORD th32ProcessID    );//// The th32ProcessID argument is only used if TH32CS_SNAPHEAPLIST or// TH32CS_SNAPMODULE is specified. th32ProcessID == 0 means the current// process.//// NOTE that all of the snapshots are global except for the heap and module//      lists which are process specific. To enumerate the heap or module//      state for all WIN32 processes call with TH32CS_SNAPALL and the//      current process. Then for each process in the TH32CS_SNAPPROCESS//      list that isn't the current process, do a call with just//      TH32CS_SNAPHEAPLIST and/or TH32CS_SNAPMODULE.//// dwFlags//#define TH32CS_SNAPHEAPLIST 0x00000001#define TH32CS_SNAPPROCESS  0x00000002#define TH32CS_SNAPTHREAD   0x00000004#define TH32CS_SNAPMODULE   0x00000008#define TH32CS_SNAPMODULE32 0x00000010#define TH32CS_SNAPALL      (TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE)#define TH32CS_INHERIT      0x80000000//// Use CloseHandle to destroy the snapshot///****** heap walking ***************************************************/typedef struct tagHEAPLIST32{    SIZE_T dwSize;    DWORD  th32ProcessID;   // owning process    ULONG_PTR  th32HeapID;      // heap (in owning process's context!)    DWORD  dwFlags;} HEAPLIST32;typedef HEAPLIST32 *  PHEAPLIST32;typedef HEAPLIST32 *  LPHEAPLIST32;//// dwFlags//#define HF32_DEFAULT      1  // process's default heap#define HF32_SHARED       2  // is shared heapBOOLWINAPIHeap32ListFirst(    HANDLE hSnapshot,    LPHEAPLIST32 lphl    );BOOLWINAPIHeap32ListNext(    HANDLE hSnapshot,    LPHEAPLIST32 lphl    );typedef struct tagHEAPENTRY32{    SIZE_T dwSize;    HANDLE hHandle;     // Handle of this heap block    ULONG_PTR dwAddress;   // Linear address of start of block    SIZE_T dwBlockSize; // Size of block in bytes    DWORD  dwFlags;    DWORD  dwLockCount;    DWORD  dwResvd;    DWORD  th32ProcessID;   // owning process    ULONG_PTR  th32HeapID;      // heap block is in} HEAPENTRY32;typedef HEAPENTRY32 *  PHEAPENTRY32;typedef HEAPENTRY32 *  LPHEAPENTRY32;//// dwFlags//#define LF32_FIXED    0x00000001#define LF32_FREE     0x00000002#define LF32_MOVEABLE 0x00000004BOOLWINAPIHeap32First(    LPHEAPENTRY32 lphe,    DWORD th32ProcessID,    ULONG_PTR th32HeapID    );BOOLWINAPIHeap32Next(    LPHEAPENTRY32 lphe    );BOOLWINAPIToolhelp32ReadProcessMemory(    DWORD   th32ProcessID,    LPCVOID lpBaseAddress,    LPVOID  lpBuffer,    SIZE_T  cbRead,    SIZE_T *lpNumberOfBytesRead    );/***** Process walking *************************************************/typedef struct tagPROCESSENTRY32W{    DWORD   dwSize;    DWORD   cntUsage;    DWORD   th32ProcessID;          // this process    ULONG_PTR th32DefaultHeapID;    DWORD   th32ModuleID;           // associated exe    DWORD   cntThreads;    DWORD   th32ParentProcessID;    // this process's parent process    LONG    pcPriClassBase;         // Base priority of process's threads    DWORD   dwFlags;    WCHAR   szExeFile[MAX_PATH];    // Path} PROCESSENTRY32W;typedef PROCESSENTRY32W *  PPROCESSENTRY32W;typedef PROCESSENTRY32W *  LPPROCESSENTRY32W;BOOLWINAPIProcess32FirstW(    HANDLE hSnapshot,    LPPROCESSENTRY32W lppe    );BOOLWINAPIProcess32NextW(    HANDLE hSnapshot,    LPPROCESSENTRY32W lppe    );typedef struct tagPROCESSENTRY32{    DWORD   dwSize;    DWORD   cntUsage;    DWORD   th32ProcessID;          // this process    ULONG_PTR th32DefaultHeapID;    DWORD   th32ModuleID;           // associated exe    DWORD   cntThreads;    DWORD   th32ParentProcessID;    // this process's parent process    LONG    pcPriClassBase;         // Base priority of process's threads    DWORD   dwFlags;    CHAR    szExeFile[MAX_PATH];    // Path} PROCESSENTRY32;typedef PROCESSENTRY32 *  PPROCESSENTRY32;typedef PROCESSENTRY32 *  LPPROCESSENTRY32;BOOLWINAPIProcess32First(    HANDLE hSnapshot,    LPPROCESSENTRY32 lppe    );BOOLWINAPIProcess32Next(    HANDLE hSnapshot,    LPPROCESSENTRY32 lppe    );#ifdef UNICODE#define Process32First Process32FirstW#define Process32Next Process32NextW#define PROCESSENTRY32 PROCESSENTRY32W#define PPROCESSENTRY32 PPROCESSENTRY32W#define LPPROCESSENTRY32 LPPROCESSENTRY32W#endif  // !UNICODE/***** Thread walking **************************************************/typedef struct tagTHREADENTRY32{    DWORD   dwSize;    DWORD   cntUsage;    DWORD   th32ThreadID;       // this thread    DWORD   th32OwnerProcessID; // Process this thread is associated with    LONG    tpBasePri;    LONG    tpDeltaPri;    DWORD   dwFlags;} THREADENTRY32;typedef THREADENTRY32 *  PTHREADENTRY32;typedef THREADENTRY32 *  LPTHREADENTRY32;BOOLWINAPIThread32First(    HANDLE hSnapshot,    LPTHREADENTRY32 lpte    );BOOLWINAPIThread32Next(    HANDLE hSnapshot,    LPTHREADENTRY32 lpte    );/***** Module walking *************************************************/typedef struct tagMODULEENTRY32W{    DWORD   dwSize;    DWORD   th32ModuleID;       // This module    DWORD   th32ProcessID;      // owning process    DWORD   GlblcntUsage;       // Global usage count on the module    DWORD   ProccntUsage;       // Module usage count in th32ProcessID's context    BYTE  * modBaseAddr;        // Base address of module in th32ProcessID's context    DWORD   modBaseSize;        // Size in bytes of module starting at modBaseAddr    HMODULE hModule;            // The hModule of this module in th32ProcessID's context    WCHAR   szModule[MAX_MODULE_NAME32 + 1];    WCHAR   szExePath[MAX_PATH];} MODULEENTRY32W;typedef MODULEENTRY32W *  PMODULEENTRY32W;typedef MODULEENTRY32W *  LPMODULEENTRY32W;BOOLWINAPIModule32FirstW(    HANDLE hSnapshot,    LPMODULEENTRY32W lpme    );BOOLWINAPIModule32NextW(    HANDLE hSnapshot,    LPMODULEENTRY32W lpme    );typedef struct tagMODULEENTRY32{    DWORD   dwSize;    DWORD   th32ModuleID;       // This module    DWORD   th32ProcessID;      // owning process    DWORD   GlblcntUsage;       // Global usage count on the module    DWORD   ProccntUsage;       // Module usage count in th32ProcessID's context    BYTE  * modBaseAddr;        // Base address of module in th32ProcessID's context    DWORD   modBaseSize;        // Size in bytes of module starting at modBaseAddr    HMODULE hModule;            // The hModule of this module in th32ProcessID's context    char    szModule[MAX_MODULE_NAME32 + 1];    char    szExePath[MAX_PATH];} MODULEENTRY32;typedef MODULEENTRY32 *  PMODULEENTRY32;typedef MODULEENTRY32 *  LPMODULEENTRY32;//// NOTE CAREFULLY that the modBaseAddr and hModule fields are valid ONLY// in th32ProcessID's process context.//BOOLWINAPIModule32First(    HANDLE hSnapshot,    LPMODULEENTRY32 lpme    );BOOLWINAPIModule32Next(    HANDLE hSnapshot,    LPMODULEENTRY32 lpme    );#ifdef UNICODE#define Module32First Module32FirstW#define Module32Next Module32NextW#define MODULEENTRY32 MODULEENTRY32W#define PMODULEENTRY32 PMODULEENTRY32W#define LPMODULEENTRY32 LPMODULEENTRY32W#endif  // !UNICODE#ifdef __cplusplus}#endif#endif // _INC_TOOLHELP32

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?