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
- HttpFileCollection.cs
- InfoCardConstants.cs
- StickyNoteContentControl.cs
- UnsafeNativeMethods.cs
- UIElementAutomationPeer.cs
- Set.cs
- MsdtcWrapper.cs
- OperatingSystem.cs
- ChangeBlockUndoRecord.cs
- TabItemWrapperAutomationPeer.cs
- InertiaExpansionBehavior.cs
- BreadCrumbTextConverter.cs
- DataListItemCollection.cs
- GridViewRowCollection.cs
- MultiSelector.cs
- DbBuffer.cs
- ColumnHeader.cs
- WebPartRestoreVerb.cs
- MeasureData.cs
- StrongNameMembershipCondition.cs
- columnmapkeybuilder.cs
- PathGradientBrush.cs
- XamlUtilities.cs
- EpmSyndicationContentSerializer.cs
- SocketElement.cs
- CheckableControlBaseAdapter.cs
- OuterGlowBitmapEffect.cs
- TreeNodeStyle.cs
- TemplateComponentConnector.cs
- CLSCompliantAttribute.cs
- PhysicalFontFamily.cs
- CheckableControlBaseAdapter.cs
- TextEditorParagraphs.cs
- _Rfc2616CacheValidators.cs
- ITextView.cs
- RotationValidation.cs
- Utils.cs
- EnvelopedSignatureTransform.cs
- SqlDataSourceCache.cs
- XmlSchemaComplexContent.cs
- EndpointAddressMessageFilter.cs
- RotateTransform.cs
- FocusWithinProperty.cs
- TransformGroup.cs
- BuildTopDownAttribute.cs
- WindowsScroll.cs
- TagNameToTypeMapper.cs
- Transform3DGroup.cs
- future.cs
- EntityDataSourceContextCreatingEventArgs.cs
- MailMessage.cs
- DataPointer.cs
- MenuItem.cs
- LoggedException.cs
- AutomationEvent.cs
- ToggleProviderWrapper.cs
- RichTextBoxDesigner.cs
- ProtectedConfigurationProviderCollection.cs
- _AutoWebProxyScriptWrapper.cs
- DataGridViewColumnConverter.cs
- WriteTimeStream.cs
- InternalCompensate.cs
- ConfigurationStrings.cs
- ContainerAction.cs
- X509ServiceCertificateAuthenticationElement.cs
- WorkflowMessageEventHandler.cs
- _NegoStream.cs
- BuildProvider.cs
- SizeChangedEventArgs.cs
- FamilyTypefaceCollection.cs
- ProxySimple.cs
- NullReferenceException.cs
- LedgerEntry.cs
- ViewManager.cs
- BorderGapMaskConverter.cs
- CodeAttachEventStatement.cs
- Cursors.cs
- HttpModuleAction.cs
- CriticalHandle.cs
- RenderTargetBitmap.cs
- KeyedHashAlgorithm.cs
- PointKeyFrameCollection.cs
- MethodAccessException.cs
- Light.cs
- HeaderUtility.cs
- Header.cs
- DataBoundControlParameterTarget.cs
- ConfigurationLocation.cs
- WSFederationHttpSecurityMode.cs
- ParallelForEach.cs
- SqlUdtInfo.cs
- PcmConverter.cs
- PageClientProxyGenerator.cs
- Internal.cs
- formatter.cs
- WebConfigurationHost.cs
- DateTimeSerializationSection.cs
- ObjectSecurity.cs
- WorkerRequest.cs
- WebHeaderCollection.cs