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
- BoundingRectTracker.cs
- SqlProfileProvider.cs
- NullableIntSumAggregationOperator.cs
- SignedXml.cs
- SmiTypedGetterSetter.cs
- PairComparer.cs
- ListControlActionList.cs
- DocumentPageHost.cs
- PageAsyncTaskManager.cs
- HwndTarget.cs
- OracleEncoding.cs
- UmAlQuraCalendar.cs
- ToolStripButton.cs
- ScriptingRoleServiceSection.cs
- ParseChildrenAsPropertiesAttribute.cs
- InfoCardSymmetricCrypto.cs
- CompositeKey.cs
- DataTableReaderListener.cs
- DataGridViewColumn.cs
- MenuEventArgs.cs
- WebRequest.cs
- AtomMaterializerLog.cs
- InputLangChangeEvent.cs
- DiagnosticsConfigurationHandler.cs
- ItemDragEvent.cs
- ActivityPreviewDesigner.cs
- SpellerInterop.cs
- DSACryptoServiceProvider.cs
- DeflateStream.cs
- ListViewUpdatedEventArgs.cs
- Invariant.cs
- DefaultMemberAttribute.cs
- AssemblyBuilder.cs
- FontSource.cs
- RawStylusInputCustomData.cs
- FacetValueContainer.cs
- PropertyDescriptorCollection.cs
- SafeFileMappingHandle.cs
- Compilation.cs
- Types.cs
- TouchEventArgs.cs
- AsyncOperation.cs
- DependencySource.cs
- SafeNativeMethodsOther.cs
- TCPListener.cs
- DelegateArgumentReference.cs
- CodeDOMProvider.cs
- SHA256Managed.cs
- EntityContainerRelationshipSet.cs
- WmfPlaceableFileHeader.cs
- MatrixTransform.cs
- EnvelopedPkcs7.cs
- DefaultValueConverter.cs
- HGlobalSafeHandle.cs
- AppSecurityManager.cs
- BitmapSourceSafeMILHandle.cs
- ToolBarButtonClickEvent.cs
- MbpInfo.cs
- SingleSelectRootGridEntry.cs
- BlurEffect.cs
- PeerObject.cs
- DefaultValueConverter.cs
- SelectorItemAutomationPeer.cs
- WebReferenceCollection.cs
- SingleConverter.cs
- QuotaThrottle.cs
- Blend.cs
- CultureInfo.cs
- ProbeMatchesMessageCD1.cs
- XomlSerializationHelpers.cs
- Inflater.cs
- Color.cs
- PenThreadWorker.cs
- TableRow.cs
- SafeLibraryHandle.cs
- LinqDataSourceContextEventArgs.cs
- PropertyBuilder.cs
- XamlSerializerUtil.cs
- XmlTextAttribute.cs
- AccessedThroughPropertyAttribute.cs
- Win32KeyboardDevice.cs
- DataGridViewButtonColumn.cs
- HtmlContainerControl.cs
- XmlHelper.cs
- TraceXPathNavigator.cs
- IntSecurity.cs
- TTSEngineProxy.cs
- EvidenceTypeDescriptor.cs
- CodeNamespaceImport.cs
- BaseValidator.cs
- EdgeModeValidation.cs
- BooleanKeyFrameCollection.cs
- DataList.cs
- DataGridViewCellStyleChangedEventArgs.cs
- grammarelement.cs
- NavigationExpr.cs
- SqlRowUpdatingEvent.cs
- MsmqIntegrationProcessProtocolHandler.cs
- XmlSigningNodeWriter.cs
- DbExpressionBuilder.cs