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
- ChangeConflicts.cs
- FieldCollectionEditor.cs
- ExtenderControl.cs
- Point.cs
- CanExpandCollapseAllConverter.cs
- TypeFieldSchema.cs
- ValidationResult.cs
- XmlILModule.cs
- CodeMemberMethod.cs
- ScriptControl.cs
- CellTreeNode.cs
- SplineKeyFrames.cs
- DependencyPropertyHelper.cs
- UnsafeNativeMethods.cs
- ProxyAttribute.cs
- RelatedCurrencyManager.cs
- StringConverter.cs
- LowerCaseStringConverter.cs
- ThicknessAnimationUsingKeyFrames.cs
- StringSorter.cs
- GreenMethods.cs
- PersonalizationStateQuery.cs
- CryptoConfig.cs
- FormsAuthenticationCredentials.cs
- DynamicValueConverter.cs
- RegexTree.cs
- AncestorChangedEventArgs.cs
- WindowVisualStateTracker.cs
- RepeatButtonAutomationPeer.cs
- Internal.cs
- TextRangeProviderWrapper.cs
- SettingsPropertyValue.cs
- WebPartVerb.cs
- PipeException.cs
- ToolBar.cs
- BaseEntityWrapper.cs
- ObjectSet.cs
- TextParagraphCache.cs
- CharacterBuffer.cs
- QueryableDataSourceHelper.cs
- BindingNavigatorDesigner.cs
- TokenBasedSet.cs
- OleDbParameter.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- ICspAsymmetricAlgorithm.cs
- FontFamilyIdentifier.cs
- XmlCDATASection.cs
- NativeMethods.cs
- FixedTextPointer.cs
- StringConverter.cs
- SubpageParaClient.cs
- DataGridViewLinkColumn.cs
- ValueUtilsSmi.cs
- DataFormats.cs
- linebase.cs
- MonikerHelper.cs
- DispatcherOperation.cs
- SlipBehavior.cs
- OracleConnectionStringBuilder.cs
- BinaryFormatter.cs
- MultiSelectRootGridEntry.cs
- StreamInfo.cs
- TreeViewCancelEvent.cs
- DesignerSerializationOptionsAttribute.cs
- AnnotationDocumentPaginator.cs
- FormView.cs
- NameSpaceExtractor.cs
- PolyBezierSegmentFigureLogic.cs
- ExpressionPrefixAttribute.cs
- DataSourceBooleanViewSchemaConverter.cs
- Domain.cs
- ChannelBinding.cs
- DeploymentExceptionMapper.cs
- MediaTimeline.cs
- SurrogateSelector.cs
- XsdDuration.cs
- PropertyNames.cs
- ColumnClickEvent.cs
- CompilerHelpers.cs
- assemblycache.cs
- ThreadStartException.cs
- DynamicValueConverter.cs
- GifBitmapEncoder.cs
- CheckBoxFlatAdapter.cs
- DSASignatureDeformatter.cs
- PersonalizablePropertyEntry.cs
- Preprocessor.cs
- lengthconverter.cs
- AnimationException.cs
- MailMessage.cs
- ElementHostPropertyMap.cs
- TreeWalker.cs
- NullableConverter.cs
- TraceSource.cs
- UniqueTransportManagerRegistration.cs
- NextPreviousPagerField.cs
- ContentPlaceHolderDesigner.cs
- ImageCodecInfoPrivate.cs
- PageBorderless.cs
- SqlDataSourceWizardForm.cs