Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / ProcessModelInfo.cs / 1305376 / ProcessModelInfo.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
* ProcessInfo class
*/
namespace System.Web {
using System.Runtime.Serialization.Formatters;
using System.Threading;
using System.Security.Permissions;
public class ProcessModelInfo {
[AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.High)]
static public ProcessInfo GetCurrentProcessInfo() {
HttpContext context = HttpContext.Current;
if (context == null || context.WorkerRequest == null ||
!(context.WorkerRequest is System.Web.Hosting.ISAPIWorkerRequestOutOfProc))
{
throw new HttpException(SR.GetString(SR.Process_information_not_available));
}
int dwReqExecuted = 0;
int dwReqExecuting = 0;
long tmCreateTime = 0;
int pid = 0;
int mem = 0;
int iRet = UnsafeNativeMethods.PMGetCurrentProcessInfo (
ref dwReqExecuted, ref dwReqExecuting, ref mem,
ref tmCreateTime, ref pid);
if (iRet < 0)
throw new HttpException(SR.GetString(SR.Process_information_not_available));
DateTime startTime = DateTime.FromFileTime(tmCreateTime);
TimeSpan age = DateTime.Now.Subtract(startTime);
return new ProcessInfo(startTime, age, pid, dwReqExecuted,
ProcessStatus.Alive, ProcessShutdownReason.None, mem);
}
[AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.High)]
static public ProcessInfo[] GetHistory(int numRecords) {
HttpContext context = HttpContext.Current;
if (context == null || context.WorkerRequest == null ||
!(context.WorkerRequest is System.Web.Hosting.ISAPIWorkerRequestOutOfProc))
{
throw new HttpException(SR.GetString(SR.Process_information_not_available));
}
if (numRecords < 1)
return null;
int [] dwPID = new int [numRecords];
int [] dwExed = new int [numRecords];
int [] dwExei = new int [numRecords];
int [] dwPend = new int [numRecords];
int [] dwReas = new int [numRecords];
long [] tmCrea = new long [numRecords];
long [] tmDeat = new long [numRecords];
int [] mem = new int [numRecords];
int iRows = UnsafeNativeMethods.PMGetHistoryTable (numRecords, dwPID, dwExed, dwPend, dwExei, dwReas, mem, tmCrea, tmDeat);
if (iRows < 0)
throw new HttpException(SR.GetString(SR.Process_information_not_available));
ProcessInfo[] ret = new ProcessInfo[iRows];
for (int iter=0; iter 0)
age = DateTime.FromFileTime(tmDeat[iter]).Subtract(startTime);
if ((dwReas[iter] & 0x0004) != 0)
status = ProcessStatus.Terminated;
else if ((dwReas[iter] & 0x0002) != 0)
status = ProcessStatus.ShutDown;
else
status = ProcessStatus.ShuttingDown;
if ((0x0040 & dwReas[iter]) != 0)
rea = ProcessShutdownReason.IdleTimeout;
else if ((0x0080 & dwReas[iter]) != 0)
rea = ProcessShutdownReason.RequestsLimit;
else if ((0x0100 & dwReas[iter]) != 0)
rea = ProcessShutdownReason.RequestQueueLimit;
else if ((0x0020 & dwReas[iter]) != 0)
rea = ProcessShutdownReason.Timeout;
else if ((0x0200 & dwReas[iter]) != 0)
rea = ProcessShutdownReason.MemoryLimitExceeded;
else if ((0x0400 & dwReas[iter]) != 0)
rea = ProcessShutdownReason.PingFailed;
else if ((0x0800 & dwReas[iter]) != 0)
rea = ProcessShutdownReason.DeadlockSuspected;
else
rea = ProcessShutdownReason.Unexpected;
}
ret[iter] = new ProcessInfo(startTime, age, dwPID[iter], dwExed[iter], status, rea, mem[iter]);
}
return ret;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
* ProcessInfo class
*/
namespace System.Web {
using System.Runtime.Serialization.Formatters;
using System.Threading;
using System.Security.Permissions;
public class ProcessModelInfo {
[AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.High)]
static public ProcessInfo GetCurrentProcessInfo() {
HttpContext context = HttpContext.Current;
if (context == null || context.WorkerRequest == null ||
!(context.WorkerRequest is System.Web.Hosting.ISAPIWorkerRequestOutOfProc))
{
throw new HttpException(SR.GetString(SR.Process_information_not_available));
}
int dwReqExecuted = 0;
int dwReqExecuting = 0;
long tmCreateTime = 0;
int pid = 0;
int mem = 0;
int iRet = UnsafeNativeMethods.PMGetCurrentProcessInfo (
ref dwReqExecuted, ref dwReqExecuting, ref mem,
ref tmCreateTime, ref pid);
if (iRet < 0)
throw new HttpException(SR.GetString(SR.Process_information_not_available));
DateTime startTime = DateTime.FromFileTime(tmCreateTime);
TimeSpan age = DateTime.Now.Subtract(startTime);
return new ProcessInfo(startTime, age, pid, dwReqExecuted,
ProcessStatus.Alive, ProcessShutdownReason.None, mem);
}
[AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.High)]
static public ProcessInfo[] GetHistory(int numRecords) {
HttpContext context = HttpContext.Current;
if (context == null || context.WorkerRequest == null ||
!(context.WorkerRequest is System.Web.Hosting.ISAPIWorkerRequestOutOfProc))
{
throw new HttpException(SR.GetString(SR.Process_information_not_available));
}
if (numRecords < 1)
return null;
int [] dwPID = new int [numRecords];
int [] dwExed = new int [numRecords];
int [] dwExei = new int [numRecords];
int [] dwPend = new int [numRecords];
int [] dwReas = new int [numRecords];
long [] tmCrea = new long [numRecords];
long [] tmDeat = new long [numRecords];
int [] mem = new int [numRecords];
int iRows = UnsafeNativeMethods.PMGetHistoryTable (numRecords, dwPID, dwExed, dwPend, dwExei, dwReas, mem, tmCrea, tmDeat);
if (iRows < 0)
throw new HttpException(SR.GetString(SR.Process_information_not_available));
ProcessInfo[] ret = new ProcessInfo[iRows];
for (int iter=0; iter 0)
age = DateTime.FromFileTime(tmDeat[iter]).Subtract(startTime);
if ((dwReas[iter] & 0x0004) != 0)
status = ProcessStatus.Terminated;
else if ((dwReas[iter] & 0x0002) != 0)
status = ProcessStatus.ShutDown;
else
status = ProcessStatus.ShuttingDown;
if ((0x0040 & dwReas[iter]) != 0)
rea = ProcessShutdownReason.IdleTimeout;
else if ((0x0080 & dwReas[iter]) != 0)
rea = ProcessShutdownReason.RequestsLimit;
else if ((0x0100 & dwReas[iter]) != 0)
rea = ProcessShutdownReason.RequestQueueLimit;
else if ((0x0020 & dwReas[iter]) != 0)
rea = ProcessShutdownReason.Timeout;
else if ((0x0200 & dwReas[iter]) != 0)
rea = ProcessShutdownReason.MemoryLimitExceeded;
else if ((0x0400 & dwReas[iter]) != 0)
rea = ProcessShutdownReason.PingFailed;
else if ((0x0800 & dwReas[iter]) != 0)
rea = ProcessShutdownReason.DeadlockSuspected;
else
rea = ProcessShutdownReason.Unexpected;
}
ret[iter] = new ProcessInfo(startTime, age, dwPID[iter], dwExed[iter], status, rea, mem[iter]);
}
return ret;
}
}
}
// 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
- SecurityResources.cs
- TransformerConfigurationWizardBase.cs
- HttpCookie.cs
- ButtonBase.cs
- BasicExpressionVisitor.cs
- ContractAdapter.cs
- BaseResourcesBuildProvider.cs
- Vector3DCollection.cs
- HandlerFactoryCache.cs
- CatalogZoneBase.cs
- LiteralSubsegment.cs
- DataGridColumnReorderingEventArgs.cs
- ExpressionBindingCollection.cs
- Matrix3D.cs
- XmlMemberMapping.cs
- HeaderUtility.cs
- Keywords.cs
- ConnectionDemuxer.cs
- FixedSOMFixedBlock.cs
- TdsParser.cs
- ErrorStyle.cs
- Module.cs
- FixedDocumentSequencePaginator.cs
- SqlUserDefinedAggregateAttribute.cs
- Asn1Utilities.cs
- ObjectTypeMapping.cs
- PropertyConverter.cs
- JapaneseCalendar.cs
- SecureUICommand.cs
- ExtensionQuery.cs
- CodeIndexerExpression.cs
- CalendarDay.cs
- EventManager.cs
- DeviceContexts.cs
- MessageContractExporter.cs
- FixedTextView.cs
- PassportAuthenticationModule.cs
- SplineQuaternionKeyFrame.cs
- GZipUtils.cs
- HMACMD5.cs
- ProtectedConfigurationProviderCollection.cs
- AtomParser.cs
- PersonalizationAdministration.cs
- KnownTypesHelper.cs
- ScaleTransform3D.cs
- FlowDocumentPageViewerAutomationPeer.cs
- EntityDataSourceStatementEditor.cs
- NativeMethods.cs
- ContainerParagraph.cs
- ResolveMatchesMessageCD1.cs
- BamlVersionHeader.cs
- NameScopePropertyAttribute.cs
- WebBrowserSiteBase.cs
- OutOfProcStateClientManager.cs
- ObjectSet.cs
- SerializationIncompleteException.cs
- XmlException.cs
- XmlArrayItemAttributes.cs
- BamlTreeMap.cs
- ProxyWebPart.cs
- HtmlTableCell.cs
- CfgParser.cs
- Hash.cs
- StretchValidation.cs
- TypeForwardedToAttribute.cs
- DependencyObjectType.cs
- XmlEncodedRawTextWriter.cs
- TemplateEditingService.cs
- ApplicationServiceManager.cs
- ProxyGenerator.cs
- DataGridColumnFloatingHeader.cs
- Schema.cs
- SqlClientPermission.cs
- ObjectListFieldsPage.cs
- MetadataException.cs
- Rect3D.cs
- HtmlInputSubmit.cs
- SessionPageStateSection.cs
- EventHandlingScope.cs
- DataPagerFieldItem.cs
- Stylus.cs
- InstancePersistence.cs
- FlowThrottle.cs
- ReadOnlyCollectionBase.cs
- PartitionerStatic.cs
- IInstanceTable.cs
- InvokeHandlers.cs
- RoutedUICommand.cs
- Persist.cs
- MsmqNonTransactedPoisonHandler.cs
- CommentGlyph.cs
- GeneralTransformGroup.cs
- TreeNodeBinding.cs
- NonSerializedAttribute.cs
- MemberRelationshipService.cs
- ClientFormsAuthenticationMembershipProvider.cs
- ScriptingJsonSerializationSection.cs
- COSERVERINFO.cs
- ToolStripLocationCancelEventArgs.cs
- SessionStateContainer.cs