This article describes an All-In-One Code Framework sample that is available for download. The sample demonstrates how to enumerate the following tasks:
Difficulty level
The follows are the definition of the hosting APIs in the COM reference:
- Show application domains (AppDomains) in current process.
- List all managed processes.
- Show the AppDomains in a specified process.
Difficulty level

Download information
To download this code sample, click one of the following links:Technical overview
Show AppDomains in current process
The ICorRuntimeHost interface provides a method to enumerate all domains that are running in the process. You can create an instance of CorRuntimeHostClass which implements the ICorRuntimeHost interface, and then get an enumerator for the domains in the current process.List all managed processes
To identify whether a process is a managed process, you can check whether it loads CLRs. The ICLRMetaHost interface provides a method that returns a list of all runtimes that are loaded in a specified process. You can get all the running processes, and then check whether they load CLRs.Show the AppDomains in a specified process
If you want to enumerate the AppDomains in the process, attach a debugger to the process by using a debugging API, then you can get an instance of CorProcess that has a property to get all the AppDomains in the attached process.The follows are the definition of the hosting APIs in the COM reference:
Common Language Runtime Execution Engine 2.4 Library. And the debugging APIs is included in mdbgcore.dll that is a part of Windows SDK.
Notes- You cannot debug your own process. However, you can use the ICorRuntimeHost interface to enumerate the AppDomains in the current process.
- If you want to enumerate 32 bit managed processes in 64 bit OS, you have to set the application platform to 32 bit platform.
- Some processes cannot be attached for the following reasons:
- The processes (such as *.exe.vshost) have already been attached.
- The processes are not in the synchronized state. However, some steps of the attach operation require that the processes should be in Synchronized state. For more information about pre-conditions for the CorDebug.idl interfaces, visit the following MSDN website:
- For more information about how to create and deploy the sample application, see the Readme.txt file that is included in the download package.
Technology category
- CLR
Languages
This code sample contains the following programming languages:Language | Project Name |
---|---|
Visual C# | CSEnumerateAppDomains |
Visual Basic.NET | VBEnumerateAppDomains |