Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Monitoring / system / Diagnosticts / ProcessModule.cs / 1305376 / ProcessModule.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Diagnostics {
using System.Diagnostics;
using System;
using System.Collections;
using System.IO;
using Microsoft.Win32;
using System.ComponentModel;
using System.Globalization;
using System.Security.Permissions;
// using System.Windows.Forms;
using System.Runtime.Versioning;
///
/// A process module component represents a DLL or EXE loaded into
/// a particular process. Using this component, you can determine
/// information about the module.
///
[Designer("System.Diagnostics.Design.ProcessModuleDesigner, " + AssemblyRef.SystemDesign)]
[PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
[PermissionSet(SecurityAction.InheritanceDemand, Name="FullTrust")]
public class ProcessModule : Component {
internal ModuleInfo moduleInfo;
FileVersionInfo fileVersionInfo;
///
/// Initialize the module.
///
///
internal ProcessModule(ModuleInfo moduleInfo) {
this.moduleInfo = moduleInfo;
GC.SuppressFinalize(this);
}
///
/// Make sure we are running on NT.
///
///
internal void EnsureNtProcessInfo() {
if (Environment.OSVersion.Platform != PlatformID.Win32NT)
throw new PlatformNotSupportedException(SR.GetString(SR.WinNTRequired));
}
///
/// Returns the name of the Module.
///
[MonitoringDescription(SR.ProcModModuleName)]
public string ModuleName {
get {
return moduleInfo.baseName;
}
}
///
/// Returns the full file path for the location of the module.
///
[MonitoringDescription(SR.ProcModFileName)]
public string FileName {
[ResourceExposure(ResourceScope.Machine)]
get {
return moduleInfo.fileName;
}
}
///
/// Returns the memory address that the module was loaded at.
///
[MonitoringDescription(SR.ProcModBaseAddress)]
public IntPtr BaseAddress {
[ResourceExposure(ResourceScope.Process)]
get {
return moduleInfo.baseOfDll;
}
}
///
/// Returns the amount of memory required to load the module. This does
/// not include any additional memory allocations made by the module once
/// it is running; it only includes the size of the static code and data
/// in the module file.
///
[MonitoringDescription(SR.ProcModModuleMemorySize)]
public int ModuleMemorySize {
get {
return moduleInfo.sizeOfImage;
}
}
///
/// Returns the memory address for function that runs when the module is
/// loaded and run.
///
[MonitoringDescription(SR.ProcModEntryPointAddress)]
public IntPtr EntryPointAddress {
get {
EnsureNtProcessInfo();
return moduleInfo.entryPoint;
}
}
///
/// Returns version information about the module.
///
[Browsable(false)]
public FileVersionInfo FileVersionInfo {
[ResourceExposure(ResourceScope.Machine)] // Let's review callers - why do they want this?
[ResourceConsumption(ResourceScope.Machine)]
get {
if (fileVersionInfo == null)
fileVersionInfo = FileVersionInfo.GetVersionInfo(FileName);
return fileVersionInfo;
}
}
public override string ToString() {
return String.Format(CultureInfo.CurrentCulture, "{0} ({1})", base.ToString(), this.ModuleName);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Diagnostics {
using System.Diagnostics;
using System;
using System.Collections;
using System.IO;
using Microsoft.Win32;
using System.ComponentModel;
using System.Globalization;
using System.Security.Permissions;
// using System.Windows.Forms;
using System.Runtime.Versioning;
///
/// A process module component represents a DLL or EXE loaded into
/// a particular process. Using this component, you can determine
/// information about the module.
///
[Designer("System.Diagnostics.Design.ProcessModuleDesigner, " + AssemblyRef.SystemDesign)]
[PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
[PermissionSet(SecurityAction.InheritanceDemand, Name="FullTrust")]
public class ProcessModule : Component {
internal ModuleInfo moduleInfo;
FileVersionInfo fileVersionInfo;
///
/// Initialize the module.
///
///
internal ProcessModule(ModuleInfo moduleInfo) {
this.moduleInfo = moduleInfo;
GC.SuppressFinalize(this);
}
///
/// Make sure we are running on NT.
///
///
internal void EnsureNtProcessInfo() {
if (Environment.OSVersion.Platform != PlatformID.Win32NT)
throw new PlatformNotSupportedException(SR.GetString(SR.WinNTRequired));
}
///
/// Returns the name of the Module.
///
[MonitoringDescription(SR.ProcModModuleName)]
public string ModuleName {
get {
return moduleInfo.baseName;
}
}
///
/// Returns the full file path for the location of the module.
///
[MonitoringDescription(SR.ProcModFileName)]
public string FileName {
[ResourceExposure(ResourceScope.Machine)]
get {
return moduleInfo.fileName;
}
}
///
/// Returns the memory address that the module was loaded at.
///
[MonitoringDescription(SR.ProcModBaseAddress)]
public IntPtr BaseAddress {
[ResourceExposure(ResourceScope.Process)]
get {
return moduleInfo.baseOfDll;
}
}
///
/// Returns the amount of memory required to load the module. This does
/// not include any additional memory allocations made by the module once
/// it is running; it only includes the size of the static code and data
/// in the module file.
///
[MonitoringDescription(SR.ProcModModuleMemorySize)]
public int ModuleMemorySize {
get {
return moduleInfo.sizeOfImage;
}
}
///
/// Returns the memory address for function that runs when the module is
/// loaded and run.
///
[MonitoringDescription(SR.ProcModEntryPointAddress)]
public IntPtr EntryPointAddress {
get {
EnsureNtProcessInfo();
return moduleInfo.entryPoint;
}
}
///
/// Returns version information about the module.
///
[Browsable(false)]
public FileVersionInfo FileVersionInfo {
[ResourceExposure(ResourceScope.Machine)] // Let's review callers - why do they want this?
[ResourceConsumption(ResourceScope.Machine)]
get {
if (fileVersionInfo == null)
fileVersionInfo = FileVersionInfo.GetVersionInfo(FileName);
return fileVersionInfo;
}
}
public override string ToString() {
return String.Format(CultureInfo.CurrentCulture, "{0} ({1})", base.ToString(), this.ModuleName);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ManipulationInertiaStartingEventArgs.cs
- CodePropertyReferenceExpression.cs
- DataStreams.cs
- DisplayInformation.cs
- FocusManager.cs
- MemoryRecordBuffer.cs
- ExpressionBuilder.cs
- SystemInfo.cs
- ComPlusDiagnosticTraceSchemas.cs
- HyperlinkAutomationPeer.cs
- ViewBase.cs
- ServiceModelTimeSpanValidator.cs
- ViewStateModeByIdAttribute.cs
- NetSectionGroup.cs
- WebMessageEncodingElement.cs
- ToolStripContainer.cs
- ControlParameter.cs
- ToolStripDropDownItem.cs
- EntityConnectionStringBuilderItem.cs
- BrowserCapabilitiesFactoryBase.cs
- PageCache.cs
- ScrollChrome.cs
- LogReserveAndAppendState.cs
- DocumentSignatureManager.cs
- CodeMethodInvokeExpression.cs
- SystemWebExtensionsSectionGroup.cs
- Site.cs
- UnknownBitmapEncoder.cs
- SmiMetaData.cs
- ToolStripContentPanelDesigner.cs
- MetadataProperty.cs
- PeerApplication.cs
- RectConverter.cs
- AutomationPropertyInfo.cs
- SystemFonts.cs
- ZipFileInfo.cs
- HttpStreamMessageEncoderFactory.cs
- XmlTextAttribute.cs
- SystemWebExtensionsSectionGroup.cs
- MimeWriter.cs
- TextRange.cs
- DeviceContext2.cs
- Pool.cs
- InputLanguageSource.cs
- TickBar.cs
- FactoryGenerator.cs
- COM2Properties.cs
- PersistChildrenAttribute.cs
- DataBindingHandlerAttribute.cs
- Nodes.cs
- EventLogTraceListener.cs
- WsdlInspector.cs
- UndoManager.cs
- DtdParser.cs
- SiteOfOriginPart.cs
- CheckBox.cs
- BitmapEffectDrawingContextWalker.cs
- SystemKeyConverter.cs
- Point.cs
- Cast.cs
- PropertyInfoSet.cs
- TileModeValidation.cs
- TimeSpanSecondsConverter.cs
- DataFormats.cs
- ReturnValue.cs
- ScopelessEnumAttribute.cs
- ParameterRefs.cs
- DrawingContext.cs
- DisableDpiAwarenessAttribute.cs
- PointLight.cs
- TreeNodeConverter.cs
- XmlSchemaExternal.cs
- AvTraceDetails.cs
- RepeatBehavior.cs
- GenericsInstances.cs
- DataGridViewBand.cs
- ReferencedCollectionType.cs
- MetadataCache.cs
- SqlUDTStorage.cs
- PropertyPath.cs
- CompressionTransform.cs
- CustomErrorCollection.cs
- FileInfo.cs
- Span.cs
- DataGridViewColumnCollection.cs
- TypedElement.cs
- EdmComplexPropertyAttribute.cs
- IFlowDocumentViewer.cs
- UidManager.cs
- TransformPatternIdentifiers.cs
- bindurihelper.cs
- StorageInfo.cs
- MethodCallTranslator.cs
- WindowsFormsSectionHandler.cs
- CompilerParameters.cs
- AnimationLayer.cs
- Metadata.cs
- ExpressionBuilderCollection.cs
- HtmlTernaryTree.cs
- MemberRelationshipService.cs