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
- RunClient.cs
- itemelement.cs
- ReaderOutput.cs
- ReadContentAsBinaryHelper.cs
- CookieProtection.cs
- AspNetCompatibilityRequirementsAttribute.cs
- SmiRequestExecutor.cs
- XmlEntity.cs
- FrameworkElementAutomationPeer.cs
- ELinqQueryState.cs
- ListContractAdapter.cs
- WebHostScriptMappingsInstallComponent.cs
- LoginUtil.cs
- SystemIcons.cs
- RepeaterItemEventArgs.cs
- FormatSettings.cs
- DesignerActionList.cs
- ResourceDisplayNameAttribute.cs
- PolicyValidationException.cs
- RelationshipEnd.cs
- CellConstantDomain.cs
- StringTraceRecord.cs
- AppSettingsReader.cs
- QilInvokeLateBound.cs
- XPathScanner.cs
- InvocationExpression.cs
- ValidatedControlConverter.cs
- AddInControllerImpl.cs
- XmlSubtreeReader.cs
- IRCollection.cs
- ListViewInsertionMark.cs
- SortedDictionary.cs
- PointAnimationClockResource.cs
- DebuggerAttributes.cs
- ButtonBase.cs
- EventPrivateKey.cs
- ListenerConnectionModeReader.cs
- ProxyGenerator.cs
- EnumValAlphaComparer.cs
- OutputCacheSettings.cs
- DataGridHyperlinkColumn.cs
- CodeMethodReturnStatement.cs
- MdImport.cs
- XmlSchemaImport.cs
- SQLDoubleStorage.cs
- CodeSnippetTypeMember.cs
- ConfigurationStrings.cs
- FilteredDataSetHelper.cs
- ViewGenResults.cs
- CodeGeneratorAttribute.cs
- DataGridColumnHeader.cs
- GroupBox.cs
- ObjectFullSpanRewriter.cs
- FontFamily.cs
- OutgoingWebRequestContext.cs
- DataGrid.cs
- SamlSerializer.cs
- Metafile.cs
- HyperLink.cs
- StringDictionary.cs
- KernelTypeValidation.cs
- HandleExceptionArgs.cs
- TemplateComponentConnector.cs
- ItemCheckEvent.cs
- EpmAttributeNameBuilder.cs
- TypographyProperties.cs
- XpsS0ValidatingLoader.cs
- InheritanceContextHelper.cs
- TypeConverterBase.cs
- MbpInfo.cs
- TreeViewEvent.cs
- PrinterUnitConvert.cs
- CommunicationObjectFaultedException.cs
- StartUpEventArgs.cs
- XPathSelfQuery.cs
- XmlNode.cs
- Itemizer.cs
- EventsTab.cs
- XMLDiffLoader.cs
- Latin1Encoding.cs
- XmlDocumentType.cs
- ExclusiveCanonicalizationTransform.cs
- RetrieveVirtualItemEventArgs.cs
- DynamicAttribute.cs
- MsmqIntegrationChannelListener.cs
- DbResourceAllocator.cs
- XmlSchemaNotation.cs
- ExtenderControl.cs
- ApplicationInterop.cs
- XmlValidatingReaderImpl.cs
- DataObject.cs
- GenericNameHandler.cs
- Vector.cs
- VerticalAlignConverter.cs
- User.cs
- AnchoredBlock.cs
- And.cs
- AsnEncodedData.cs
- TransformProviderWrapper.cs
- OdbcPermission.cs