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
- dbenumerator.cs
- coordinator.cs
- MergablePropertyAttribute.cs
- ImmutableObjectAttribute.cs
- TableCell.cs
- ReadOnlyDataSourceView.cs
- DataControlButton.cs
- RemotingConfigParser.cs
- ListViewHitTestInfo.cs
- ScrollBar.cs
- AdRotator.cs
- Quad.cs
- SqlUserDefinedAggregateAttribute.cs
- SettingsContext.cs
- SerializerProvider.cs
- SelectionRange.cs
- SortQueryOperator.cs
- DatePicker.cs
- ListViewAutomationPeer.cs
- DefaultAuthorizationContext.cs
- ApplicationDirectoryMembershipCondition.cs
- MessageQueuePermissionAttribute.cs
- RightsManagementInformation.cs
- XpsS0ValidatingLoader.cs
- OledbConnectionStringbuilder.cs
- FontSource.cs
- DataChangedEventManager.cs
- SpStreamWrapper.cs
- WebPartConnectionsCloseVerb.cs
- PersistenceProviderBehavior.cs
- FeatureAttribute.cs
- SchemaAttDef.cs
- UnsafeNativeMethods.cs
- SecurityStandardsManager.cs
- SourceSwitch.cs
- Debugger.cs
- ChtmlPhoneCallAdapter.cs
- BitmapEffectrendercontext.cs
- ListManagerBindingsCollection.cs
- PathGeometry.cs
- TreeViewCancelEvent.cs
- StateDesigner.CommentLayoutGlyph.cs
- CompModSwitches.cs
- SqlCacheDependency.cs
- DataTransferEventArgs.cs
- SubclassTypeValidatorAttribute.cs
- WebServiceParameterData.cs
- HttpResponseInternalWrapper.cs
- UIElement3D.cs
- TableCell.cs
- TableCell.cs
- InvalidDataContractException.cs
- DigitShape.cs
- NonVisualControlAttribute.cs
- EventEntry.cs
- TransformValueSerializer.cs
- QilFunction.cs
- TimeoutHelper.cs
- ISAPIApplicationHost.cs
- FieldCollectionEditor.cs
- Gdiplus.cs
- Interlocked.cs
- TreeIterators.cs
- HtmlWindow.cs
- coordinatorfactory.cs
- ArrangedElementCollection.cs
- StaticExtensionConverter.cs
- RuntimeEnvironment.cs
- GenerateTemporaryTargetAssembly.cs
- ScrollBar.cs
- DateTimeOffset.cs
- TranslateTransform.cs
- SignatureToken.cs
- TextParentUndoUnit.cs
- XmlWhitespace.cs
- UnsignedPublishLicense.cs
- TextDecorationCollection.cs
- ShortcutKeysEditor.cs
- EncryptedKeyIdentifierClause.cs
- WpfKnownMemberInvoker.cs
- HttpListenerException.cs
- SequentialWorkflowRootDesigner.cs
- ListControlConvertEventArgs.cs
- DataGridViewRowCollection.cs
- DataRecordInternal.cs
- DrawingCollection.cs
- AssemblyAssociatedContentFileAttribute.cs
- ConstraintStruct.cs
- RegionIterator.cs
- DataControlFieldHeaderCell.cs
- SQlBooleanStorage.cs
- EncryptedReference.cs
- EntityTransaction.cs
- SubstitutionResponseElement.cs
- InvokeWebServiceDesigner.cs
- DrawingGroup.cs
- CharacterBufferReference.cs
- XmlSchemaAttributeGroupRef.cs
- DbgUtil.cs
- RemotingConfiguration.cs