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
- Rfc2898DeriveBytes.cs
- BCLDebug.cs
- TabOrder.cs
- MeshGeometry3D.cs
- EventlogProvider.cs
- ObjectViewQueryResultData.cs
- PopupEventArgs.cs
- SiteMapNodeCollection.cs
- CodeIndexerExpression.cs
- XmlEncoding.cs
- DocumentGridContextMenu.cs
- DropShadowBitmapEffect.cs
- DebugView.cs
- ProcessProtocolHandler.cs
- _ShellExpression.cs
- XPathAncestorQuery.cs
- RowBinding.cs
- CodeAttributeArgument.cs
- PersistChildrenAttribute.cs
- HitTestParameters.cs
- BinaryCommonClasses.cs
- DataListCommandEventArgs.cs
- BrowsableAttribute.cs
- EntityDataSourceConfigureObjectContext.cs
- HttpModule.cs
- ScrollContentPresenter.cs
- XmlSchemaComplexContentExtension.cs
- DynamicPropertyHolder.cs
- VerticalAlignConverter.cs
- ControlValuePropertyAttribute.cs
- ValidationSummary.cs
- ProviderCollection.cs
- Material.cs
- GridSplitterAutomationPeer.cs
- DataKeyArray.cs
- SpeechEvent.cs
- RichTextBoxAutomationPeer.cs
- Visitor.cs
- _NegotiateClient.cs
- WebPartTracker.cs
- BooleanStorage.cs
- BinaryExpression.cs
- ItemAutomationPeer.cs
- ViewEventArgs.cs
- NavigationPropertyEmitter.cs
- CompilerParameters.cs
- ContentElement.cs
- TimersDescriptionAttribute.cs
- XPathChildIterator.cs
- CombinedGeometry.cs
- RadialGradientBrush.cs
- TrackingQuery.cs
- ExtractedStateEntry.cs
- TemplateInstanceAttribute.cs
- FragmentQuery.cs
- FormViewUpdatedEventArgs.cs
- TrustSection.cs
- QilChoice.cs
- InertiaExpansionBehavior.cs
- ImageButton.cs
- GeometryValueSerializer.cs
- SqlCommandSet.cs
- basecomparevalidator.cs
- Menu.cs
- AsyncPostBackErrorEventArgs.cs
- SqlConnectionFactory.cs
- TypeHelper.cs
- ScrollPattern.cs
- RegionIterator.cs
- VariableElement.cs
- SHA1.cs
- SizeKeyFrameCollection.cs
- Cell.cs
- DoubleLinkList.cs
- ExpressionBuilder.cs
- TabPanel.cs
- EmptyStringExpandableObjectConverter.cs
- DataMemberConverter.cs
- BamlTreeNode.cs
- Avt.cs
- DataBoundControl.cs
- AddressingVersion.cs
- SingleConverter.cs
- BehaviorEditorPart.cs
- PropertiesTab.cs
- SortQueryOperator.cs
- SerializationHelper.cs
- InternalConfigHost.cs
- PropertyDescriptorGridEntry.cs
- DataExpression.cs
- MetaModel.cs
- HitTestParameters.cs
- DataGridItemCollection.cs
- XmlSchemaAttributeGroupRef.cs
- ClientSettingsStore.cs
- PerformanceCounterPermission.cs
- Item.cs
- StateWorkerRequest.cs
- HandlerBase.cs
- RealProxy.cs