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
- WebPartHelpVerb.cs
- SqlBuffer.cs
- GridView.cs
- Hashtable.cs
- MD5Cng.cs
- AppDomainUnloadedException.cs
- RepeatBehaviorConverter.cs
- XmlSchemaInclude.cs
- WebBrowserDocumentCompletedEventHandler.cs
- Rijndael.cs
- RouteParameter.cs
- Assert.cs
- XmlWrappingWriter.cs
- PropertyFilter.cs
- DetailsViewPagerRow.cs
- MsmqOutputMessage.cs
- RecognizedAudio.cs
- ScanQueryOperator.cs
- SuppressMergeCheckAttribute.cs
- WinEventTracker.cs
- QilGenerator.cs
- ChildrenQuery.cs
- ProfileProvider.cs
- InputLangChangeEvent.cs
- CallbackHandler.cs
- ItemList.cs
- BinHexEncoder.cs
- XmlRawWriterWrapper.cs
- BrowserInteropHelper.cs
- WebBrowserUriTypeConverter.cs
- HideDisabledControlAdapter.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- SiteMapNodeCollection.cs
- messageonlyhwndwrapper.cs
- ColumnMapProcessor.cs
- TagElement.cs
- DragEventArgs.cs
- SQLDateTimeStorage.cs
- ObjectComplexPropertyMapping.cs
- Transactions.cs
- XmlRawWriter.cs
- SiteMapNodeItem.cs
- ToolStripItemImageRenderEventArgs.cs
- UrlMappingsModule.cs
- CriticalFinalizerObject.cs
- Geometry3D.cs
- BidPrivateBase.cs
- HttpVersion.cs
- Int32AnimationUsingKeyFrames.cs
- SurrogateSelector.cs
- TextElement.cs
- WindowsFormsSectionHandler.cs
- ListControl.cs
- WmpBitmapDecoder.cs
- SafeNativeMethods.cs
- HtmlElementErrorEventArgs.cs
- JsonReader.cs
- PlainXmlSerializer.cs
- Win32SafeHandles.cs
- CodeMemberMethod.cs
- DoubleStorage.cs
- PassportAuthenticationEventArgs.cs
- RegexMatch.cs
- OverrideMode.cs
- CopyAction.cs
- BitmapCache.cs
- LicenseProviderAttribute.cs
- WindowsListViewGroup.cs
- MemberInfoSerializationHolder.cs
- SeekStoryboard.cs
- Vector3DCollectionConverter.cs
- TextDecorations.cs
- SessionPageStateSection.cs
- TransactionOptions.cs
- SimpleApplicationHost.cs
- precedingquery.cs
- UnmanagedMemoryStream.cs
- SelectedDatesCollection.cs
- UnSafeCharBuffer.cs
- HtmlProps.cs
- SqlConnectionHelper.cs
- categoryentry.cs
- XmlExtensionFunction.cs
- WebReferencesBuildProvider.cs
- ProxyDataContractResolver.cs
- TextTreeText.cs
- WorkflowDesigner.cs
- InternalConfigConfigurationFactory.cs
- FixedDSBuilder.cs
- glyphs.cs
- AuthorizationRule.cs
- ViewStateModeByIdAttribute.cs
- ListenerAdapter.cs
- PKCS1MaskGenerationMethod.cs
- KnowledgeBase.cs
- BuildProvider.cs
- XmlSchemaComplexContent.cs
- VisualTreeUtils.cs
- TerminateSequenceResponse.cs
- EdmToObjectNamespaceMap.cs