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
- SystemWebExtensionsSectionGroup.cs
- SqlCommandAsyncResult.cs
- ConfigurationProperty.cs
- ViewLoader.cs
- UnionCodeGroup.cs
- FormViewPagerRow.cs
- MethodRental.cs
- Crypto.cs
- DataSourceBooleanViewSchemaConverter.cs
- PersonalizationStateInfoCollection.cs
- JsonCollectionDataContract.cs
- DebugTracing.cs
- MultipleViewPatternIdentifiers.cs
- CompositeTypefaceMetrics.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- ClosableStream.cs
- Property.cs
- BitmapVisualManager.cs
- StylusPointCollection.cs
- RepeaterItemCollection.cs
- DebugController.cs
- SchemaComplexType.cs
- EntityContainerEmitter.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- WebPartDescriptionCollection.cs
- CapabilitiesRule.cs
- ToolBar.cs
- TypeUsage.cs
- MembershipUser.cs
- UriTemplateLiteralQueryValue.cs
- NativeRecognizer.cs
- QualifiedCellIdBoolean.cs
- AffineTransform3D.cs
- FactoryId.cs
- TypeBuilderInstantiation.cs
- DataErrorValidationRule.cs
- NamespaceInfo.cs
- SetterBase.cs
- RepeatEnumerable.cs
- HttpHandlersSection.cs
- SrgsRule.cs
- PeerNameRecord.cs
- Point3D.cs
- LassoHelper.cs
- DocComment.cs
- TemplatePropertyEntry.cs
- HostingEnvironmentWrapper.cs
- MSG.cs
- OleDbCommand.cs
- TemplateBuilder.cs
- AddInEnvironment.cs
- ICspAsymmetricAlgorithm.cs
- Matrix3DValueSerializer.cs
- UriScheme.cs
- ServiceOperationInfoTypeConverter.cs
- ChtmlTextWriter.cs
- KernelTypeValidation.cs
- GridViewUpdateEventArgs.cs
- PrintPreviewDialog.cs
- CroppedBitmap.cs
- X509CertificateTrustedIssuerElement.cs
- InvalidCastException.cs
- ToolboxItemFilterAttribute.cs
- DesignSurfaceServiceContainer.cs
- SiteMapProvider.cs
- XmlTextReaderImplHelpers.cs
- GridViewRowPresenter.cs
- VoiceSynthesis.cs
- Win32KeyboardDevice.cs
- CollectionViewGroup.cs
- HttpProtocolImporter.cs
- NodeLabelEditEvent.cs
- OrderByLifter.cs
- MonitorWrapper.cs
- NavigationService.cs
- FieldToken.cs
- HttpSessionStateWrapper.cs
- ErrorFormatter.cs
- ValueOfAction.cs
- HashUtility.cs
- HMACSHA384.cs
- Content.cs
- SqlServer2KCompatibilityAnnotation.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- SrgsDocumentParser.cs
- ExtenderProvidedPropertyAttribute.cs
- XmlDataCollection.cs
- GridViewRowEventArgs.cs
- SrgsElementFactoryCompiler.cs
- SemaphoreSecurity.cs
- baseaxisquery.cs
- ImageClickEventArgs.cs
- CodeCompileUnit.cs
- LocatorPart.cs
- RegexWriter.cs
- RoleManagerSection.cs
- SystemIPv6InterfaceProperties.cs
- ResolveNameEventArgs.cs
- DropDownList.cs
- ButtonPopupAdapter.cs