Code:
/ DotNET / DotNET / 8.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
- ExcCanonicalXml.cs
- ObjectIDGenerator.cs
- CounterSetInstanceCounterDataSet.cs
- RoutedEventArgs.cs
- DbProviderSpecificTypePropertyAttribute.cs
- RemotingConfigParser.cs
- Focus.cs
- XPathAncestorQuery.cs
- XhtmlBasicListAdapter.cs
- CompositeControl.cs
- UntypedNullExpression.cs
- PrintPreviewControl.cs
- Variant.cs
- LassoSelectionBehavior.cs
- BuildDependencySet.cs
- SemaphoreFullException.cs
- RoutedEventConverter.cs
- TextBox.cs
- ObjectKeyFrameCollection.cs
- ControlPropertyNameConverter.cs
- ObjectComplexPropertyMapping.cs
- ContextProperty.cs
- BrowserInteropHelper.cs
- SimpleExpression.cs
- WebBrowserContainer.cs
- LinearGradientBrush.cs
- CultureSpecificCharacterBufferRange.cs
- AsyncSerializedWorker.cs
- GeneralTransform3DCollection.cs
- CodeDelegateInvokeExpression.cs
- AnyAllSearchOperator.cs
- Span.cs
- LabelAutomationPeer.cs
- ParameterCollection.cs
- XmlReflectionMember.cs
- ItemsControl.cs
- SplitContainer.cs
- ExternalFile.cs
- WindowsToolbarItemAsMenuItem.cs
- TabRenderer.cs
- Listbox.cs
- DataSourceXmlClassAttribute.cs
- GenericXmlSecurityToken.cs
- TextFindEngine.cs
- TreeNodeBinding.cs
- AutoResetEvent.cs
- ToolStripAdornerWindowService.cs
- SqlErrorCollection.cs
- BrowserCapabilitiesCodeGenerator.cs
- EventLogInternal.cs
- XmlSerializer.cs
- SmiConnection.cs
- __Filters.cs
- ComponentGuaranteesAttribute.cs
- SecurityTokenTypes.cs
- BackoffTimeoutHelper.cs
- ProgressBar.cs
- XmlAtomicValue.cs
- Registry.cs
- _TLSstream.cs
- DiscoveryInnerClientAdhoc11.cs
- RenderData.cs
- ConfigXmlComment.cs
- DrawingContextWalker.cs
- GridViewHeaderRowPresenter.cs
- XmlSchemaAnyAttribute.cs
- ModelVisual3D.cs
- LookupTables.cs
- Int32Collection.cs
- KnownTypeDataContractResolver.cs
- DeobfuscatingStream.cs
- ProgressiveCrcCalculatingStream.cs
- Interlocked.cs
- EncodingStreamWrapper.cs
- LoginView.cs
- EtwTrace.cs
- XmlSchemaValidator.cs
- WebScriptMetadataFormatter.cs
- AmbientProperties.cs
- WasNotInstalledException.cs
- ModuleBuilderData.cs
- CodeConditionStatement.cs
- PnrpPeerResolver.cs
- ObjectViewListener.cs
- SafeFindHandle.cs
- DataSourceCacheDurationConverter.cs
- HtmlTable.cs
- FigureParagraph.cs
- ScriptRegistrationManager.cs
- BamlTreeUpdater.cs
- XmlDomTextWriter.cs
- ParamArrayAttribute.cs
- QueryOutputWriter.cs
- HtmlTableRowCollection.cs
- ValueTable.cs
- StructuralObject.cs
- NonBatchDirectoryCompiler.cs
- ObjectTypeMapping.cs
- BrowserPolicyValidator.cs
- GeneralTransform3DTo2D.cs