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
- StylusPointPropertyUnit.cs
- StructuredTypeInfo.cs
- HideDisabledControlAdapter.cs
- BaseAsyncResult.cs
- NTAccount.cs
- SingleStorage.cs
- EdmTypeAttribute.cs
- VisualTreeHelper.cs
- GenericRootAutomationPeer.cs
- XsdCachingReader.cs
- RemotingHelper.cs
- PassportAuthentication.cs
- ServiceObjectContainer.cs
- GetImportedCardRequest.cs
- Misc.cs
- HttpRuntimeSection.cs
- CodeDelegateCreateExpression.cs
- HandleRef.cs
- DataRecord.cs
- Filter.cs
- Assembly.cs
- handlecollector.cs
- SafeLibraryHandle.cs
- SqlException.cs
- TemplateField.cs
- Attributes.cs
- MenuEventArgs.cs
- XmlSchemaFacet.cs
- NumericUpDownAcceleration.cs
- CopyNodeSetAction.cs
- XmlMapping.cs
- XsltQilFactory.cs
- DataGridViewCellMouseEventArgs.cs
- NamedObject.cs
- DataGridViewRowPrePaintEventArgs.cs
- DataException.cs
- FixedSOMTableCell.cs
- EntityWrapperFactory.cs
- LinqMaximalSubtreeNominator.cs
- WindowsPen.cs
- DoubleAnimation.cs
- NamedPipeHostedTransportConfiguration.cs
- ChildrenQuery.cs
- Serializer.cs
- GridView.cs
- IgnoreSection.cs
- SchemaEntity.cs
- HtmlInputImage.cs
- embossbitmapeffect.cs
- ConfigurationStrings.cs
- MonthChangedEventArgs.cs
- ThumbAutomationPeer.cs
- ChildTable.cs
- WebScriptMetadataFormatter.cs
- DataServiceExpressionVisitor.cs
- SqlPersonalizationProvider.cs
- Int32CollectionConverter.cs
- AliasedExpr.cs
- IntellisenseTextBox.designer.cs
- ColumnHeader.cs
- SerializationSectionGroup.cs
- ComEventsMethod.cs
- ProtectedConfigurationSection.cs
- HttpListener.cs
- ListSortDescription.cs
- SQLInt64Storage.cs
- ProgressBarHighlightConverter.cs
- DriveInfo.cs
- SqlGenericUtil.cs
- CatalogPartChrome.cs
- RegexCaptureCollection.cs
- SplitContainer.cs
- SystemIcmpV4Statistics.cs
- _LocalDataStore.cs
- IOException.cs
- VisualStateGroup.cs
- APCustomTypeDescriptor.cs
- InfoCardKeyedHashAlgorithm.cs
- PermissionSetEnumerator.cs
- UriSection.cs
- _KerberosClient.cs
- DataRowChangeEvent.cs
- EditorBrowsableAttribute.cs
- TextRangeBase.cs
- HtmlImage.cs
- DocumentPageViewAutomationPeer.cs
- DefaultAsyncDataDispatcher.cs
- DataServiceHostFactory.cs
- ScopedKnownTypes.cs
- SvcMapFileSerializer.cs
- CompensatableTransactionScopeActivity.cs
- SyndicationSerializer.cs
- ValidationManager.cs
- PasswordRecovery.cs
- LinkConverter.cs
- ThemeConfigurationDialog.cs
- DataGridViewEditingControlShowingEventArgs.cs
- TcpServerChannel.cs
- DeviceSpecificDialogCachedState.cs
- mansign.cs