Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MarkupWriter.cs
- IsolatedStoragePermission.cs
- SectionXmlInfo.cs
- ImmComposition.cs
- SafeHGlobalHandleCritical.cs
- PersianCalendar.cs
- CryptoApi.cs
- XmlIlVisitor.cs
- MsmqInputChannelBase.cs
- ITextView.cs
- ReachUIElementCollectionSerializer.cs
- RadioButtonBaseAdapter.cs
- UInt16.cs
- Timeline.cs
- DiagnosticsConfiguration.cs
- TextBox.cs
- SamlAssertionDirectKeyIdentifierClause.cs
- XmlAttributeAttribute.cs
- StylusPointPropertyInfoDefaults.cs
- IdentityHolder.cs
- NetSectionGroup.cs
- TabControl.cs
- Shape.cs
- XdrBuilder.cs
- InfoCardCryptoHelper.cs
- Helpers.cs
- XPathNavigatorKeyComparer.cs
- ObsoleteAttribute.cs
- hebrewshape.cs
- GPRECT.cs
- CachedTypeface.cs
- Setter.cs
- CodeIdentifier.cs
- UniqueSet.cs
- _OverlappedAsyncResult.cs
- ScrollContentPresenter.cs
- Propagator.Evaluator.cs
- CodeCommentStatement.cs
- RegisteredArrayDeclaration.cs
- WmlValidationSummaryAdapter.cs
- ParagraphResult.cs
- SessionPageStateSection.cs
- Perspective.cs
- ScriptServiceAttribute.cs
- ToolStripArrowRenderEventArgs.cs
- ReservationNotFoundException.cs
- AssemblyAssociatedContentFileAttribute.cs
- PrintPreviewGraphics.cs
- SafeLocalAllocation.cs
- RayMeshGeometry3DHitTestResult.cs
- ServiceInfoCollection.cs
- UmAlQuraCalendar.cs
- FileUpload.cs
- UniqueContractNameValidationBehavior.cs
- ConnectionStringsExpressionEditor.cs
- XmlSchemaSearchPattern.cs
- HttpListener.cs
- XmlBinaryReader.cs
- MenuAutomationPeer.cs
- SystemDiagnosticsSection.cs
- DataGridViewEditingControlShowingEventArgs.cs
- WebPartDisplayModeEventArgs.cs
- DefaultIfEmptyQueryOperator.cs
- Version.cs
- AsymmetricSignatureDeformatter.cs
- Variant.cs
- ImageMapEventArgs.cs
- PackageStore.cs
- TileBrush.cs
- DiagnosticStrings.cs
- WsdlBuildProvider.cs
- OdbcTransaction.cs
- RelationshipConverter.cs
- Vars.cs
- CodeDomExtensionMethods.cs
- BamlMapTable.cs
- ConnectionProviderAttribute.cs
- InvariantComparer.cs
- SolidBrush.cs
- RepeaterItemCollection.cs
- Attachment.cs
- SequentialOutput.cs
- RemoteWebConfigurationHostServer.cs
- MULTI_QI.cs
- ArrayTypeMismatchException.cs
- StartUpEventArgs.cs
- MetadataHelper.cs
- CheckBoxDesigner.cs
- Utils.cs
- BitmapDecoder.cs
- CollectionBuilder.cs
- SimpleMailWebEventProvider.cs
- Codec.cs
- BoundColumn.cs
- TextChangedEventArgs.cs
- DirtyTextRange.cs
- RepeatBehavior.cs
- TransactionFlowAttribute.cs
- XmlUtil.cs
- PagedDataSource.cs