Code:
/ FX-1434 / FX-1434 / 1.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
- SymmetricAlgorithm.cs
- QilScopedVisitor.cs
- UInt32Storage.cs
- MenuEventArgs.cs
- MetadataAssemblyHelper.cs
- EntityDataSourceContextCreatedEventArgs.cs
- NodeLabelEditEvent.cs
- BoundColumn.cs
- SystemUnicastIPAddressInformation.cs
- SrgsOneOf.cs
- CodeAssignStatement.cs
- NetworkInformationPermission.cs
- EditorZoneBase.cs
- HttpUnhandledOperationInvoker.cs
- XmlNodeComparer.cs
- TextDecorationCollectionConverter.cs
- SystemGatewayIPAddressInformation.cs
- configsystem.cs
- ListViewItem.cs
- EncodingInfo.cs
- EventLogConfiguration.cs
- ChangeNode.cs
- SoapObjectWriter.cs
- FormViewDeleteEventArgs.cs
- NavigatorOutput.cs
- RecordConverter.cs
- ItemsPanelTemplate.cs
- ConnectionProviderAttribute.cs
- PathSegmentCollection.cs
- ServiceOperationParameter.cs
- Grid.cs
- FontWeights.cs
- PaintEvent.cs
- XmlSchemaType.cs
- XmlWhitespace.cs
- TextAdaptor.cs
- WorkflowFileItem.cs
- FormViewDeleteEventArgs.cs
- codemethodreferenceexpression.cs
- XamlInterfaces.cs
- SafeSystemMetrics.cs
- RequestBringIntoViewEventArgs.cs
- LocationUpdates.cs
- EventLogStatus.cs
- SafeNativeMethods.cs
- ImageMapEventArgs.cs
- FamilyMapCollection.cs
- CustomAttributeSerializer.cs
- DataGridPagerStyle.cs
- CurrentChangingEventManager.cs
- UrlMappingsSection.cs
- HttpModule.cs
- GridItemCollection.cs
- XmlResolver.cs
- Perspective.cs
- XDeferredAxisSource.cs
- FixedDocument.cs
- ScriptResourceAttribute.cs
- ReadOnlyDataSource.cs
- pingexception.cs
- unsafenativemethodsother.cs
- ElementNotEnabledException.cs
- SerializerDescriptor.cs
- XmlC14NWriter.cs
- DbTransaction.cs
- DeviceContexts.cs
- ArgumentNullException.cs
- Enlistment.cs
- FontSizeConverter.cs
- DoubleCollectionValueSerializer.cs
- OutputCacheProviderCollection.cs
- ParallelEnumerable.cs
- ISFClipboardData.cs
- URL.cs
- FieldBuilder.cs
- PageTheme.cs
- MultiTrigger.cs
- StaticFileHandler.cs
- ControlParameter.cs
- HttpAsyncResult.cs
- RelatedImageListAttribute.cs
- Matrix.cs
- AccessorTable.cs
- RedBlackList.cs
- RawKeyboardInputReport.cs
- DynamicEntity.cs
- BamlTreeUpdater.cs
- FloaterBaseParagraph.cs
- DEREncoding.cs
- DynamicDataManager.cs
- DataSourceSelectArguments.cs
- PageRequestManager.cs
- HttpDebugHandler.cs
- Rect3DValueSerializer.cs
- SelectionWordBreaker.cs
- WebPartActionVerb.cs
- ToolStripOverflow.cs
- SudsCommon.cs
- ErrorProvider.cs
- MessageTransmitTraceRecord.cs