Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / ProcessModelInfo.cs / 1 / 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; [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] 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; } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SerializerWriterEventHandlers.cs
- DBAsyncResult.cs
- DragEventArgs.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- WebPartVerbsEventArgs.cs
- DataGridViewImageColumn.cs
- CodeTypeParameterCollection.cs
- EventLogWatcher.cs
- XmlDataSourceView.cs
- WasAdminWrapper.cs
- EntityDataSourceContainerNameConverter.cs
- ObjectContext.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- XhtmlBasicLinkAdapter.cs
- SplitContainer.cs
- CreateCardRequest.cs
- SqlDataSourceCache.cs
- XmlComment.cs
- _HelperAsyncResults.cs
- Content.cs
- Typography.cs
- InternalDispatchObject.cs
- Trigger.cs
- DecimalAnimationUsingKeyFrames.cs
- BamlTreeNode.cs
- BinaryOperationBinder.cs
- IQueryable.cs
- DependencySource.cs
- QilFactory.cs
- StyleTypedPropertyAttribute.cs
- PopupRootAutomationPeer.cs
- OperationContractGenerationContext.cs
- CodeChecksumPragma.cs
- DataGrid.cs
- CommandField.cs
- XmlLanguage.cs
- PolygonHotSpot.cs
- DataMember.cs
- SaveFileDialog.cs
- DataFormat.cs
- GeneralTransform3DCollection.cs
- WebPartZoneCollection.cs
- EntityDesignerDataSourceView.cs
- WebPartConnection.cs
- ObfuscateAssemblyAttribute.cs
- SymDocumentType.cs
- HttpHandlersSection.cs
- ObjectQueryState.cs
- ViewManager.cs
- HebrewCalendar.cs
- ListViewSelectEventArgs.cs
- LinqExpressionNormalizer.cs
- ReadOnlyCollectionBase.cs
- designeractionbehavior.cs
- DataSourceGroupCollection.cs
- CachedFontFamily.cs
- LazyLoadBehavior.cs
- ButtonBase.cs
- UnsafeNativeMethods.cs
- login.cs
- ProfileService.cs
- arc.cs
- AsymmetricKeyExchangeFormatter.cs
- ExceptionUtil.cs
- RepeatButtonAutomationPeer.cs
- DataBindingCollection.cs
- BamlStream.cs
- ListSortDescription.cs
- DynamicILGenerator.cs
- RoleGroup.cs
- ContentHostHelper.cs
- OdbcInfoMessageEvent.cs
- _FtpControlStream.cs
- UnsafeNativeMethods.cs
- DataColumn.cs
- RelatedView.cs
- ProfileService.cs
- xml.cs
- SettingsBase.cs
- ToolZoneDesigner.cs
- AnimatedTypeHelpers.cs
- ThreadAbortException.cs
- Bezier.cs
- BrushValueSerializer.cs
- DefaultBinder.cs
- CodeIdentifier.cs
- XmlDesignerDataSourceView.cs
- UrlMapping.cs
- WeakReadOnlyCollection.cs
- AttachmentService.cs
- PageContentAsyncResult.cs
- FunctionImportMapping.cs
- SQLStringStorage.cs
- DefaultBinder.cs
- SHA1.cs
- Light.cs
- LambdaCompiler.cs
- Parallel.cs
- StackSpiller.Generated.cs
- CurrentChangingEventManager.cs