Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // 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; } } } // 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
- PreservationFileWriter.cs
- SqlCommandBuilder.cs
- wmiprovider.cs
- AlternateView.cs
- MultiBindingExpression.cs
- SqlConnectionHelper.cs
- BitmapImage.cs
- DateTimeOffsetStorage.cs
- ObjectConverter.cs
- Int32EqualityComparer.cs
- StreamMarshaler.cs
- WpfKnownMemberInvoker.cs
- EpmTargetTree.cs
- RecognizedWordUnit.cs
- CheckoutException.cs
- DockAndAnchorLayout.cs
- TextProperties.cs
- XmlCDATASection.cs
- PrimitiveSchema.cs
- HScrollBar.cs
- AssociationTypeEmitter.cs
- MethodSignatureGenerator.cs
- EnumBuilder.cs
- TransportContext.cs
- NativeWindow.cs
- ImageDrawing.cs
- DictionaryManager.cs
- BindingExpressionUncommonField.cs
- ClientEventManager.cs
- MetadataSource.cs
- TextInfo.cs
- ConnectionStringSettingsCollection.cs
- TdsValueSetter.cs
- HttpCapabilitiesSectionHandler.cs
- RenderDataDrawingContext.cs
- FileRegion.cs
- SimpleWorkerRequest.cs
- SymbolType.cs
- cookie.cs
- ErrorHandler.cs
- SamlSubject.cs
- CryptoStream.cs
- HotSpot.cs
- NeutralResourcesLanguageAttribute.cs
- XmlNavigatorFilter.cs
- Knowncolors.cs
- SqlDataRecord.cs
- SmtpAuthenticationManager.cs
- TypeUnloadedException.cs
- StringValidator.cs
- TypeElement.cs
- AmbientLight.cs
- SelectionList.cs
- DbgUtil.cs
- OdbcCommand.cs
- PageEventArgs.cs
- peersecurityelement.cs
- TokenBasedSetEnumerator.cs
- CorePropertiesFilter.cs
- IxmlLineInfo.cs
- ModuleElement.cs
- DetailsViewUpdateEventArgs.cs
- KeyedByTypeCollection.cs
- XmlAtomicValue.cs
- InfoCardSymmetricAlgorithm.cs
- XpsS0ValidatingLoader.cs
- RequestCachingSection.cs
- Vector3DAnimationBase.cs
- SchemaLookupTable.cs
- ProgressBar.cs
- TextTreeRootTextBlock.cs
- PointHitTestResult.cs
- CallbackDebugBehavior.cs
- cookie.cs
- XmlDataSourceView.cs
- SimpleHandlerFactory.cs
- StylusCaptureWithinProperty.cs
- XamlToRtfParser.cs
- SafeViewOfFileHandle.cs
- XPathDocumentBuilder.cs
- MemberPath.cs
- CookieProtection.cs
- CacheManager.cs
- RichTextBoxAutomationPeer.cs
- TabRenderer.cs
- HtmlElementCollection.cs
- SiteMapPathDesigner.cs
- HashCodeCombiner.cs
- VirtualizedContainerService.cs
- SqlDataSourceView.cs
- WorkflowRequestContext.cs
- StringFreezingAttribute.cs
- XamlWrapperReaders.cs
- CodeExporter.cs
- ObjectTokenCategory.cs
- ConditionalBranch.cs
- BamlTreeUpdater.cs
- RijndaelManaged.cs
- DateTimeConverter2.cs
- Assembly.cs