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
- RubberbandSelector.cs
- Point3DKeyFrameCollection.cs
- ContextBase.cs
- PeerTransportListenAddressValidator.cs
- ApplicationHost.cs
- EntitySetDataBindingList.cs
- ITextView.cs
- ProcessHostConfigUtils.cs
- KeyConstraint.cs
- ActivityTrace.cs
- PopupRootAutomationPeer.cs
- ReaderWriterLock.cs
- ToolStripDropDownClosedEventArgs.cs
- ContextInformation.cs
- ToolStripProgressBar.cs
- FrameAutomationPeer.cs
- sqlstateclientmanager.cs
- TemplateBuilder.cs
- HttpFileCollection.cs
- HighlightComponent.cs
- WebAdminConfigurationHelper.cs
- ClassicBorderDecorator.cs
- CodeAttachEventStatement.cs
- ClientScriptItem.cs
- PropertyDescriptor.cs
- WebPartManager.cs
- RoutedUICommand.cs
- String.cs
- TreeNode.cs
- EventDescriptorCollection.cs
- RouteUrlExpressionBuilder.cs
- HitTestFilterBehavior.cs
- NativeMethods.cs
- HttpCachePolicy.cs
- UserValidatedEventArgs.cs
- ConsumerConnectionPointCollection.cs
- InputLanguageManager.cs
- OletxTransactionManager.cs
- SynthesizerStateChangedEventArgs.cs
- TrackingProfileSerializer.cs
- ColorMatrix.cs
- IPEndPointCollection.cs
- XmlSerializationReader.cs
- AuthenticationException.cs
- SafePEFileHandle.cs
- ObjectStateEntryDbDataRecord.cs
- ProcessMonitor.cs
- DynamicField.cs
- Control.cs
- ProfileSettingsCollection.cs
- SafeHandles.cs
- NameValueFileSectionHandler.cs
- ConsoleCancelEventArgs.cs
- QueryAsyncResult.cs
- SessionStateUtil.cs
- FastEncoderStatics.cs
- ListControlConvertEventArgs.cs
- printdlgexmarshaler.cs
- MetafileHeaderWmf.cs
- HttpProfileGroupBase.cs
- ProgramPublisher.cs
- DecoderNLS.cs
- nulltextnavigator.cs
- NamespaceCollection.cs
- SettingsPropertyNotFoundException.cs
- XmlUTF8TextWriter.cs
- EnumType.cs
- SoapEnvelopeProcessingElement.cs
- MimeFormatExtensions.cs
- PropertyOverridesTypeEditor.cs
- UmAlQuraCalendar.cs
- HandlerFactoryWrapper.cs
- UIElementCollection.cs
- Crypto.cs
- invalidudtexception.cs
- ComplexPropertyEntry.cs
- SafeFileMapViewHandle.cs
- VersionedStream.cs
- AxisAngleRotation3D.cs
- SoapIgnoreAttribute.cs
- Page.cs
- Attributes.cs
- MimeTypeMapper.cs
- TextShapeableCharacters.cs
- RoutingSection.cs
- HwndSourceKeyboardInputSite.cs
- HttpClientProtocol.cs
- SqlUtil.cs
- NavigationFailedEventArgs.cs
- X509RecipientCertificateClientElement.cs
- PrePrepareMethodAttribute.cs
- PagesSection.cs
- InteropTrackingRecord.cs
- ResXResourceReader.cs
- ButtonFieldBase.cs
- Page.cs
- Content.cs
- Parameter.cs
- RemotingAttributes.cs
- HybridObjectCache.cs