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
- Attributes.cs
- ProviderIncompatibleException.cs
- InkPresenter.cs
- DataGridViewCellStateChangedEventArgs.cs
- ZipIOExtraFieldElement.cs
- FormsAuthenticationUser.cs
- XsltArgumentList.cs
- MarkupWriter.cs
- SerializationSectionGroup.cs
- UpdateRecord.cs
- AggregateNode.cs
- StrokeNodeEnumerator.cs
- SynchronizedInputPattern.cs
- HitTestWithGeometryDrawingContextWalker.cs
- ListViewInsertEventArgs.cs
- SystemGatewayIPAddressInformation.cs
- CustomErrorsSectionWrapper.cs
- DataGridState.cs
- PathParser.cs
- NumberSubstitution.cs
- TypeSystem.cs
- DSGeneratorProblem.cs
- EventTrigger.cs
- PagesChangedEventArgs.cs
- PathSegmentCollection.cs
- Utils.cs
- Subtree.cs
- ReceiveCompletedEventArgs.cs
- GestureRecognitionResult.cs
- GZipDecoder.cs
- XmlElementAttribute.cs
- fixedPageContentExtractor.cs
- DeclaredTypeElementCollection.cs
- FilterQuery.cs
- UsernameTokenFactoryCredential.cs
- PrintDocument.cs
- PenLineJoinValidation.cs
- RegisteredArrayDeclaration.cs
- SmiEventSink_DeferedProcessing.cs
- PageThemeBuildProvider.cs
- DebugView.cs
- CachedFontFamily.cs
- TypedTableBase.cs
- VirtualDirectoryMappingCollection.cs
- QuaternionKeyFrameCollection.cs
- Mouse.cs
- GridViewCancelEditEventArgs.cs
- DiffuseMaterial.cs
- RowBinding.cs
- QueueProcessor.cs
- NotImplementedException.cs
- RelatedEnd.cs
- QilParameter.cs
- MetadataAssemblyHelper.cs
- messageonlyhwndwrapper.cs
- BuildProvider.cs
- XmlSerializerAssemblyAttribute.cs
- FileEnumerator.cs
- BinaryConverter.cs
- Int16Converter.cs
- PageHandlerFactory.cs
- TransportElement.cs
- DisposableCollectionWrapper.cs
- BasicHttpMessageCredentialType.cs
- RawKeyboardInputReport.cs
- CngProperty.cs
- BamlResourceContent.cs
- AccessedThroughPropertyAttribute.cs
- GetPageNumberCompletedEventArgs.cs
- UTF32Encoding.cs
- CustomCategoryAttribute.cs
- OrderedDictionaryStateHelper.cs
- FormsAuthentication.cs
- DownloadProgressEventArgs.cs
- RegexMatch.cs
- EventArgs.cs
- FontDifferentiator.cs
- InvokeMethodActivity.cs
- Predicate.cs
- ResolveNameEventArgs.cs
- StringConcat.cs
- UpdateRecord.cs
- VersionedStream.cs
- Identifier.cs
- FormViewActionList.cs
- AsyncWaitHandle.cs
- ObjectPersistData.cs
- CodeAttachEventStatement.cs
- RichTextBoxConstants.cs
- Thread.cs
- ValidationEventArgs.cs
- ImpersonationContext.cs
- CalloutQueueItem.cs
- DynamicResourceExtension.cs
- MatrixAnimationUsingKeyFrames.cs
- JournalNavigationScope.cs
- CodeVariableReferenceExpression.cs
- WebPartCancelEventArgs.cs
- WebPartVerb.cs
- CodeSnippetExpression.cs