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
- X509Certificate2Collection.cs
- StrokeNodeData.cs
- DataBinder.cs
- FactoryGenerator.cs
- TextEditorContextMenu.cs
- TrustManager.cs
- DataGridViewColumnConverter.cs
- ListBindableAttribute.cs
- CodeDirectionExpression.cs
- TypePropertyEditor.cs
- EditorPart.cs
- Util.cs
- KeySpline.cs
- OperationResponse.cs
- StorageTypeMapping.cs
- ExpandoObject.cs
- UInt16Storage.cs
- AspNetPartialTrustHelpers.cs
- NavigatingCancelEventArgs.cs
- HtmlImageAdapter.cs
- RuntimeArgumentHandle.cs
- FamilyTypeface.cs
- SystemUnicastIPAddressInformation.cs
- IgnoreFileBuildProvider.cs
- ConnectionManagementElementCollection.cs
- Menu.cs
- sqlstateclientmanager.cs
- MatrixCamera.cs
- EnumConverter.cs
- PngBitmapEncoder.cs
- WebBrowserBase.cs
- TextServicesManager.cs
- TableAdapterManagerNameHandler.cs
- WebPartHelpVerb.cs
- SamlAttributeStatement.cs
- ToolStripPanel.cs
- AccessKeyManager.cs
- SqlDataSourceParameterParser.cs
- NameValuePermission.cs
- ListViewItem.cs
- GroupStyle.cs
- InstanceView.cs
- ListBase.cs
- DataSourceControl.cs
- EmptyCollection.cs
- TdsParserStateObject.cs
- HttpException.cs
- RawKeyboardInputReport.cs
- BulletedListEventArgs.cs
- XmlAnyElementAttributes.cs
- CatalogZone.cs
- StatusBarPanelClickEvent.cs
- DataMemberFieldConverter.cs
- MergePropertyDescriptor.cs
- BamlCollectionHolder.cs
- InvokeAction.cs
- MergeFilterQuery.cs
- MimeWriter.cs
- AlignmentXValidation.cs
- TextSearch.cs
- IdentityNotMappedException.cs
- NullReferenceException.cs
- VisualTarget.cs
- LogRestartAreaEnumerator.cs
- EventWaitHandleSecurity.cs
- MouseGestureConverter.cs
- UserControlDocumentDesigner.cs
- WebControlAdapter.cs
- FlowLayout.cs
- ReadOnlyNameValueCollection.cs
- QuadraticBezierSegment.cs
- SerializationObjectManager.cs
- DbExpressionVisitor_TResultType.cs
- MediaContext.cs
- ISAPIWorkerRequest.cs
- WorkflowServiceBehavior.cs
- BitmapCodecInfoInternal.cs
- SqlDuplicator.cs
- BufferModeSettings.cs
- WebPartTransformerAttribute.cs
- DesignTimeParseData.cs
- TextServicesProperty.cs
- ScriptResourceInfo.cs
- IPGlobalProperties.cs
- RoleGroupCollection.cs
- ValidationHelper.cs
- WindowsListViewItem.cs
- PageCodeDomTreeGenerator.cs
- RtfToXamlLexer.cs
- ADMembershipUser.cs
- BinaryUtilClasses.cs
- ConfigurationSection.cs
- WorkflowFileItem.cs
- ComponentRenameEvent.cs
- ContractBase.cs
- ValueConversionAttribute.cs
- TemplateControlCodeDomTreeGenerator.cs
- BoolExpression.cs
- shaper.cs
- HttpFileCollection.cs