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
- AuthenticationModuleElementCollection.cs
- RawStylusInputCustomDataList.cs
- RowSpanVector.cs
- MSG.cs
- ThumbAutomationPeer.cs
- ServiceProviders.cs
- TraceRecord.cs
- MSAAWinEventWrap.cs
- ObjectAnimationBase.cs
- AuthenticationModuleElement.cs
- XmlImplementation.cs
- OutputCacheSection.cs
- PropertyEmitter.cs
- WebPartUserCapability.cs
- OleDbDataAdapter.cs
- FixedSOMImage.cs
- FrameworkContentElementAutomationPeer.cs
- AuthorizationContext.cs
- DecoderReplacementFallback.cs
- SecurityState.cs
- LoginCancelEventArgs.cs
- ControlUtil.cs
- SqlBinder.cs
- TagPrefixAttribute.cs
- WindowsTreeView.cs
- DataServiceQueryException.cs
- ObjectStateEntry.cs
- LayoutTableCell.cs
- HttpRequestContext.cs
- DesignerAttributeInfo.cs
- DataBoundControlActionList.cs
- XmlSchemaComplexContentExtension.cs
- ServicePointManager.cs
- DataGridViewHitTestInfo.cs
- latinshape.cs
- ZoneLinkButton.cs
- XmlLangPropertyAttribute.cs
- ProtocolElement.cs
- ToolStripLabel.cs
- PromptEventArgs.cs
- CodeCommentStatement.cs
- CommandEventArgs.cs
- SqlMetaData.cs
- AncillaryOps.cs
- cookieexception.cs
- followingquery.cs
- KeyTime.cs
- ConnectionStringSettingsCollection.cs
- XmlWellformedWriterHelpers.cs
- RtfToXamlReader.cs
- AppDomainFactory.cs
- ModelUIElement3D.cs
- LineUtil.cs
- AssociationSet.cs
- ColumnWidthChangedEvent.cs
- DBCommandBuilder.cs
- SpellerHighlightLayer.cs
- DataSysAttribute.cs
- FormView.cs
- ChangeToolStripParentVerb.cs
- UpdatePanelTriggerCollection.cs
- ResourceLoader.cs
- HttpWriter.cs
- AbsoluteQuery.cs
- InvokePattern.cs
- AdRotator.cs
- RootProfilePropertySettingsCollection.cs
- XsdCachingReader.cs
- ToolStripItemCollection.cs
- SeekStoryboard.cs
- TextEffect.cs
- CommonProperties.cs
- DataGridPageChangedEventArgs.cs
- PeerPresenceInfo.cs
- AuthenticationConfig.cs
- WebScriptServiceHost.cs
- processwaithandle.cs
- InfoCardKeyedHashAlgorithm.cs
- CollectionContainer.cs
- ListDictionary.cs
- ByteAnimationBase.cs
- UiaCoreProviderApi.cs
- EditingCommands.cs
- GridViewRow.cs
- ConditionValidator.cs
- control.ime.cs
- CommentEmitter.cs
- XslTransformFileEditor.cs
- SingleAnimationBase.cs
- DocobjHost.cs
- Keywords.cs
- XmlWhitespace.cs
- DesignerSerializationManager.cs
- TransformerInfoCollection.cs
- CalendarDateRangeChangingEventArgs.cs
- ResourcePool.cs
- ToolStripContextMenu.cs
- SoapSchemaExporter.cs
- ConfigurationFileMap.cs
- XmlArrayAttribute.cs