Desktop Functions:

   Smart Device Functions:

Show Recent Changes
Subscribe (RSS)
Misc. Pages
Helpful Tools
Suggested Reading
Website TODO List
Support Forum
Download Visual Studio Add-In

Terms of Use
Privacy Policy
PROCESSENTRY32 (kernel32)

Holds various bits of process-related info

C# Signature:

public struct PROCESSENTRY32
      public uint dwSize;
      public uint cntUsage;
      public uint th32ProcessID;
      public IntPtr th32DefaultHeapID;
      public uint th32ModuleID;
      public uint cntThreads;
      public uint th32ParentProcessID;
      public int pcPriClassBase;
      public uint dwFlags;
      [MarshalAs(UnmanagedType.ByValTStr, SizeConst=260)] public string szExeFile;

VB.NET Signature:

<StructLayout(LayoutKind.Sequential)> _
Public Structure PROCESSENTRY32
    Public dwSize As UInteger
    Public cntUsage As UInteger
    Public th32ProcessID As UInteger
    Public th32DefaultHeapID As IntPtr
    Public th32ModuleID As UInteger
    Public cntThreads As UInteger
    Public th32ParentProcessID As UInteger
    Public pcPriClassBase As Integer
    Public dwFlags As UInteger
    <VBFixedString(260), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> Public szExeFile As String
End Structure

User-Defined Types:


Alternative Managed API:

Do you know one? Please contribute it!



Tips & Tricks:

Please add some!

Sample Code:

See CreateToolhelp32Snapshot


I found a different PROCESSENTRY32 structure I needed to use on Windows Mobile (6.x)

C# Signature:

    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
    public struct PROCESSENTRY32
        const int MAX_PATH = 260;
        internal UInt32 dwSize;
        internal UInt32 cntUsage;
        internal UInt32 th32ProcessID;
        internal IntPtr th32DefaultHeapID;
        internal UInt32 th32ModuleID;
        internal UInt32 cntThreads;
        internal UInt32 th32ParentProcessID;
        internal Int32 pcPriClassBase;
        internal UInt32 dwFlags;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAX_PATH)]
        internal string szExeFile;
        public uint th32MemoryBase;
        public uint th32AccessKey;

Possibly you need to use this definition if Process32First fails with error code 87 (invalid argument)

Please edit this page!

Do you have...

  • helpful tips or sample code to share for using this API in managed code?
  • corrections to the existing content?
  • variations of the signature you want to share?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).

Access directly from VS:
Terms of Use
Edit This Page
Find References
Show Printable Version