Code:
/ DotNET / DotNET / 8.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
- DrawTreeNodeEventArgs.cs
- ByeOperation11AsyncResult.cs
- UInt32.cs
- ImageProxy.cs
- Mappings.cs
- Preprocessor.cs
- DropShadowBitmapEffect.cs
- HtmlContainerControl.cs
- ToolStripPanelSelectionBehavior.cs
- DateTimeOffsetStorage.cs
- BindingExpressionBase.cs
- BitSet.cs
- AuthenticationModuleElementCollection.cs
- OrderedDictionaryStateHelper.cs
- AcceleratedTokenProviderState.cs
- XmlBindingWorker.cs
- PropertyChangingEventArgs.cs
- StatusBarDrawItemEvent.cs
- AuthenticationConfig.cs
- SchemaCollectionPreprocessor.cs
- MetadataArtifactLoaderResource.cs
- CreateSequenceResponse.cs
- Encoder.cs
- TreeChangeInfo.cs
- HtmlElementCollection.cs
- CustomValidator.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- DesignBindingPicker.cs
- TreeNodeCollectionEditor.cs
- NegotiateStream.cs
- IPAddress.cs
- StorageTypeMapping.cs
- TimeZone.cs
- DefaultMemberAttribute.cs
- WindowsStreamSecurityUpgradeProvider.cs
- ListViewTableCell.cs
- TextRangeEditLists.cs
- Cursors.cs
- GeometryHitTestParameters.cs
- BypassElementCollection.cs
- DbConnectionStringCommon.cs
- XmlSiteMapProvider.cs
- SqlDataRecord.cs
- QueryableFilterUserControl.cs
- FileSystemWatcher.cs
- ButtonFieldBase.cs
- EnvelopedSignatureTransform.cs
- WebZone.cs
- SqlInternalConnection.cs
- RichTextBox.cs
- CookielessHelper.cs
- RegexMatchCollection.cs
- EventLogInformation.cs
- WebPartDisplayModeCollection.cs
- StrongNameUtility.cs
- SystemIPInterfaceStatistics.cs
- Rect3D.cs
- ParameterInfo.cs
- SyntaxCheck.cs
- KnownBoxes.cs
- ComboBoxAutomationPeer.cs
- MissingManifestResourceException.cs
- CodeEventReferenceExpression.cs
- BehaviorEditorPart.cs
- DataGridViewControlCollection.cs
- LocalizationComments.cs
- DrawListViewColumnHeaderEventArgs.cs
- TreeNodeBindingCollection.cs
- WindowsFormsSectionHandler.cs
- DefaultPropertyAttribute.cs
- ExtentCqlBlock.cs
- XmlSchemaNotation.cs
- CallInfo.cs
- EnumValidator.cs
- Axis.cs
- BitmapEffectvisualstate.cs
- XPathItem.cs
- TreeIterator.cs
- PenThread.cs
- SqlExpander.cs
- HtmlControlPersistable.cs
- CompilerResults.cs
- SByteStorage.cs
- PageMediaType.cs
- CompositeFontFamily.cs
- WindowsStatusBar.cs
- StopStoryboard.cs
- XmlDocumentFragment.cs
- VBCodeProvider.cs
- RectAnimationClockResource.cs
- MimeBasePart.cs
- StreamDocument.cs
- DesigntimeLicenseContextSerializer.cs
- EmbeddedMailObject.cs
- HighlightVisual.cs
- PackWebRequest.cs
- UniqueConstraint.cs
- HandlerBase.cs
- FloaterBaseParagraph.cs
- AutomationPropertyInfo.cs