Process.Modules Property

Definition

Gets the modules that have been loaded by the associated process.

C#
public System.Diagnostics.ProcessModuleCollection Modules { get; }
C#
[System.ComponentModel.Browsable(false)]
public System.Diagnostics.ProcessModuleCollection Modules { get; }

Property Value

An array of type ProcessModule that represents the modules that have been loaded by the associated process.

Attributes

Exceptions

You are attempting to access the Modules property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.

The process Id is not available.

You are attempting to access the Modules property for either the system process or the idle process. These processes do not have modules.

Remarks

The value returned by this property represents the most recently refreshed modules. To get the most up to date information, you need to call Refresh() method first.

A process module represents a.dll or .exe file that is loaded into a particular process. A ProcessModule instance lets you view information about a module, including the module name, file name, and module memory details.

A process can load multiple modules into memory. For example,.exe files that load additional .dll files have multiple modules.

After starting the process, this collection is empty until the system has loaded the process. If the process has a main window, you can call WaitForInputIdle before retrieving this property to ensure that the collection is nonempty when you get the list.

Applies to

Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

See also