Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / ProcessModelInfo.cs / 1305376 / 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; 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
- DataServiceProcessingPipeline.cs
- RefreshEventArgs.cs
- RelationshipEndMember.cs
- MulticastDelegate.cs
- CalendarBlackoutDatesCollection.cs
- DataShape.cs
- NamespaceDecl.cs
- RecipientInfo.cs
- MouseDevice.cs
- FramingChannels.cs
- BinaryExpression.cs
- WebZone.cs
- TextRangeProviderWrapper.cs
- FixedStringLookup.cs
- IssuedTokenServiceCredential.cs
- InkCollectionBehavior.cs
- _DisconnectOverlappedAsyncResult.cs
- CodeDomSerializerBase.cs
- FrameworkObject.cs
- GridViewUpdatedEventArgs.cs
- XmlSchemaSimpleType.cs
- CodeSnippetCompileUnit.cs
- CodeDOMProvider.cs
- Blend.cs
- ReliableSessionBindingElement.cs
- StringPropertyBuilder.cs
- ActivityBindForm.cs
- MD5CryptoServiceProvider.cs
- OdbcParameterCollection.cs
- DbLambda.cs
- WebPartZoneBase.cs
- __Filters.cs
- Peer.cs
- ErrorWrapper.cs
- Char.cs
- Message.cs
- StrokeIntersection.cs
- SqlNodeAnnotations.cs
- TypefaceMap.cs
- SecurityTokenContainer.cs
- Avt.cs
- TextAdaptor.cs
- base64Transforms.cs
- DelayedRegex.cs
- BitmapEncoder.cs
- FlowNode.cs
- CryptoApi.cs
- TableLayout.cs
- ListViewDeleteEventArgs.cs
- HttpStaticObjectsCollectionBase.cs
- NTAccount.cs
- DataContractSet.cs
- FrameAutomationPeer.cs
- Synchronization.cs
- HostedController.cs
- PackageStore.cs
- DataKeyPropertyAttribute.cs
- MulticastNotSupportedException.cs
- DataSourceControl.cs
- CompilationUtil.cs
- ListDictionaryInternal.cs
- EnvelopedPkcs7.cs
- DataGrid.cs
- messageonlyhwndwrapper.cs
- __ComObject.cs
- ServerValidateEventArgs.cs
- DATA_BLOB.cs
- ChtmlImageAdapter.cs
- AbstractDataSvcMapFileLoader.cs
- EncoderExceptionFallback.cs
- MarshalByRefObject.cs
- UniformGrid.cs
- ProfilePropertyNameValidator.cs
- FontNamesConverter.cs
- StackSpiller.Bindings.cs
- ImageCodecInfo.cs
- ObjectParameterCollection.cs
- RSAPKCS1SignatureFormatter.cs
- SqlUserDefinedTypeAttribute.cs
- ConnectionsZone.cs
- EncryptedHeaderXml.cs
- DataBinding.cs
- FixedPageProcessor.cs
- DataGridViewCellMouseEventArgs.cs
- DESCryptoServiceProvider.cs
- SQLMembershipProvider.cs
- URL.cs
- XmlEntityReference.cs
- FileDetails.cs
- WebPartEventArgs.cs
- Memoizer.cs
- TrackingStringDictionary.cs
- PerspectiveCamera.cs
- ImageIndexConverter.cs
- _DisconnectOverlappedAsyncResult.cs
- InstanceOwnerException.cs
- ClientProtocol.cs
- ValidatingReaderNodeData.cs
- ToolStripLabel.cs
- Signature.cs