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
- StringSorter.cs
- SR.cs
- VirtualPathUtility.cs
- PropertyChangedEventManager.cs
- ConfigurationLocationCollection.cs
- EdmType.cs
- ServiceModelEnumValidatorAttribute.cs
- TextControlDesigner.cs
- ValueUnavailableException.cs
- Errors.cs
- ObjectContext.cs
- DSACryptoServiceProvider.cs
- Color.cs
- WindowsFormsSynchronizationContext.cs
- SendMailErrorEventArgs.cs
- SubpageParagraph.cs
- ColumnClickEvent.cs
- PagesSection.cs
- SQLDecimalStorage.cs
- CreateUserWizard.cs
- TypeConverterHelper.cs
- NativeMethods.cs
- FreezableDefaultValueFactory.cs
- ProgressPage.cs
- BamlRecordReader.cs
- FunctionDetailsReader.cs
- Number.cs
- DeferredSelectedIndexReference.cs
- SecurityPolicySection.cs
- WindowsButton.cs
- XmlArrayItemAttribute.cs
- MetaModel.cs
- LocationSectionRecord.cs
- TypeContext.cs
- SqlUtils.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- ToolStripDropDownClosingEventArgs.cs
- XMLSchema.cs
- ValueOfAction.cs
- DataGridViewCellLinkedList.cs
- NavigationPropertyEmitter.cs
- StructuredTypeInfo.cs
- WebControlsSection.cs
- VersionPair.cs
- StylusPlugInCollection.cs
- MatrixAnimationUsingPath.cs
- Tracking.cs
- DocumentXPathNavigator.cs
- PowerModeChangedEventArgs.cs
- ClientSettingsSection.cs
- RenderData.cs
- Composition.cs
- SmtpLoginAuthenticationModule.cs
- CacheChildrenQuery.cs
- RegistryDataKey.cs
- ExpressionBuilderContext.cs
- DefaultPropertyAttribute.cs
- HTMLTagNameToTypeMapper.cs
- DataControlButton.cs
- MatrixCamera.cs
- Compilation.cs
- GetReadStreamResult.cs
- SubMenuStyle.cs
- TextSelectionHelper.cs
- WorkflowInstanceRecord.cs
- DbConnectionPool.cs
- ValidationSummaryDesigner.cs
- SoapSchemaImporter.cs
- OverrideMode.cs
- StateBag.cs
- OAVariantLib.cs
- BufferedGraphics.cs
- PointHitTestParameters.cs
- HtmlImage.cs
- TypeName.cs
- ColorAnimationBase.cs
- CodeTypeMember.cs
- WebPartAddingEventArgs.cs
- PartEditor.cs
- DynamicFilter.cs
- ConditionalBranch.cs
- InputLanguageCollection.cs
- MessageDecoder.cs
- ColorConverter.cs
- nulltextcontainer.cs
- TransformCollection.cs
- BitmapFrameDecode.cs
- MetadataItemSerializer.cs
- ButtonFieldBase.cs
- SqlServer2KCompatibilityAnnotation.cs
- GcHandle.cs
- OpenTypeMethods.cs
- ReceiveCompletedEventArgs.cs
- WmiEventSink.cs
- CodeIterationStatement.cs
- LoginDesignerUtil.cs
- FileSystemEnumerable.cs
- CompilerParameters.cs
- XmlSignificantWhitespace.cs
- AnnouncementDispatcherAsyncResult.cs