Code:
/ 4.0 / 4.0 / untmp / 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; iter0) 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
- Reference.cs
- TableParagraph.cs
- QuaternionRotation3D.cs
- SoapAttributes.cs
- InvalidCastException.cs
- SystemResourceHost.cs
- SingleSelectRootGridEntry.cs
- RichTextBoxConstants.cs
- EdmEntityTypeAttribute.cs
- ReachUIElementCollectionSerializer.cs
- ExpandoClass.cs
- ToolStripItemClickedEventArgs.cs
- WebPartConnection.cs
- ObjectManager.cs
- SecureStringHasher.cs
- Dump.cs
- ManagementBaseObject.cs
- MouseActionValueSerializer.cs
- SafeNativeMethods.cs
- PropertyCondition.cs
- HttpRawResponse.cs
- Literal.cs
- CompoundFileDeflateTransform.cs
- FormsAuthenticationTicket.cs
- DBDataPermissionAttribute.cs
- ParamArrayAttribute.cs
- WebBodyFormatMessageProperty.cs
- ClonableStack.cs
- BindingExpressionBase.cs
- WSSecurityOneDotZeroSendSecurityHeader.cs
- CodeSnippetStatement.cs
- PerformanceCounterCategory.cs
- RSAOAEPKeyExchangeDeformatter.cs
- InlineObject.cs
- ServiceBusyException.cs
- IpcManager.cs
- SplayTreeNode.cs
- PauseStoryboard.cs
- FloaterParaClient.cs
- DetailsViewCommandEventArgs.cs
- ProgressPage.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- TailCallAnalyzer.cs
- ListBox.cs
- Header.cs
- FormsAuthenticationUserCollection.cs
- BamlStream.cs
- BinaryFormatter.cs
- SendContent.cs
- DecimalStorage.cs
- EntityClassGenerator.cs
- SqlGenericUtil.cs
- VisualProxy.cs
- EntityPropertyMappingAttribute.cs
- InitializeCorrelation.cs
- _KerberosClient.cs
- BindingNavigator.cs
- X509ChainElement.cs
- ViewStateException.cs
- GcHandle.cs
- ReturnEventArgs.cs
- SessionPageStatePersister.cs
- XmlDocumentSurrogate.cs
- StackOverflowException.cs
- CodePageEncoding.cs
- TreeNodeSelectionProcessor.cs
- ContainerParaClient.cs
- DataTablePropertyDescriptor.cs
- StrokeNodeOperations.cs
- ISO2022Encoding.cs
- OdbcConnectionOpen.cs
- Comparer.cs
- WindowsComboBox.cs
- ClientSettingsStore.cs
- PagedDataSource.cs
- SoapWriter.cs
- GeneralTransform3DTo2D.cs
- RuleSetDialog.cs
- TextTreeFixupNode.cs
- NetSectionGroup.cs
- SortFieldComparer.cs
- PropertyValueChangedEvent.cs
- SqlBinder.cs
- WebPartPersonalization.cs
- SqlRewriteScalarSubqueries.cs
- PropertyPathWorker.cs
- CompiledRegexRunnerFactory.cs
- SubtreeProcessor.cs
- IgnoreSection.cs
- SiteMap.cs
- FileClassifier.cs
- CachedTypeface.cs
- CommandField.cs
- Propagator.JoinPropagator.SubstitutingCloneVisitor.cs
- ByteRangeDownloader.cs
- CustomPopupPlacement.cs
- NonVisualControlAttribute.cs
- OptimisticConcurrencyException.cs
- DecimalKeyFrameCollection.cs
- EntityContainerAssociationSetEnd.cs