Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Net / System / Net / NetworkInformation / SystemIPInterfaceStatistics.cs / 1 / SystemIPInterfaceStatistics.cs
////// namespace System.Net.NetworkInformation { using System.Net.Sockets; using System; using System.ComponentModel; /// /// Provides support for ip configuation information and statistics. /// IP statistics internal class SystemIPv4InterfaceStatistics:IPv4InterfaceStatistics { MibIfRow ifRow = new MibIfRow(); private SystemIPv4InterfaceStatistics(){ } internal SystemIPv4InterfaceStatistics(long index){ GetIfEntry(index); } public override long OutputQueueLength{get {return ifRow.dwOutQLen;}} public override long BytesSent{get {return ifRow.dwOutOctets;}} public override long BytesReceived{get {return ifRow.dwInOctets;}} public override long UnicastPacketsSent{get {return ifRow.dwOutUcastPkts;}} public override long UnicastPacketsReceived{get { return ifRow.dwInUcastPkts;}} public override long NonUnicastPacketsSent{get { return ifRow.dwOutNUcastPkts;}} public override long NonUnicastPacketsReceived{get { return ifRow.dwInNUcastPkts;}} public override long IncomingPacketsDiscarded{get { return ifRow.dwInDiscards;}} public override long OutgoingPacketsDiscarded{get { return ifRow.dwOutDiscards;}} public override long IncomingPacketsWithErrors{get { return ifRow.dwInErrors;}} public override long OutgoingPacketsWithErrors{get { return ifRow.dwOutErrors;}} public override long IncomingUnknownProtocolPackets{get { return ifRow.dwInUnknownProtos;}} internal long Mtu{get { return ifRow.dwMtu;}} internal OperationalStatus OperationalStatus{ get{ switch (ifRow.operStatus) { case OldOperationalStatus.NonOperational: return OperationalStatus.Down; case OldOperationalStatus.Unreachable: return OperationalStatus.Down; case OldOperationalStatus.Disconnected: return OperationalStatus.Dormant; case OldOperationalStatus.Connecting: return OperationalStatus.Dormant; case OldOperationalStatus.Connected: return OperationalStatus.Up; case OldOperationalStatus.Operational: return OperationalStatus.Up; } //state unknow return OperationalStatus.Unknown; } } internal long Speed{get { return ifRow.dwSpeed;}} //This method is used to get information for ipv4 specific interfaces //we should only call this the first time one of the properties //are accessed. void GetIfEntry(long index) { if (index == 0 ) return; ifRow.dwIndex = (uint)index; uint result = UnsafeNetInfoNativeMethods.GetIfEntry(ref ifRow); if (result != IpHelperErrors.Success) { throw new NetworkInformationException((int)result); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. ////// namespace System.Net.NetworkInformation { using System.Net.Sockets; using System; using System.ComponentModel; /// /// Provides support for ip configuation information and statistics. /// IP statistics internal class SystemIPv4InterfaceStatistics:IPv4InterfaceStatistics { MibIfRow ifRow = new MibIfRow(); private SystemIPv4InterfaceStatistics(){ } internal SystemIPv4InterfaceStatistics(long index){ GetIfEntry(index); } public override long OutputQueueLength{get {return ifRow.dwOutQLen;}} public override long BytesSent{get {return ifRow.dwOutOctets;}} public override long BytesReceived{get {return ifRow.dwInOctets;}} public override long UnicastPacketsSent{get {return ifRow.dwOutUcastPkts;}} public override long UnicastPacketsReceived{get { return ifRow.dwInUcastPkts;}} public override long NonUnicastPacketsSent{get { return ifRow.dwOutNUcastPkts;}} public override long NonUnicastPacketsReceived{get { return ifRow.dwInNUcastPkts;}} public override long IncomingPacketsDiscarded{get { return ifRow.dwInDiscards;}} public override long OutgoingPacketsDiscarded{get { return ifRow.dwOutDiscards;}} public override long IncomingPacketsWithErrors{get { return ifRow.dwInErrors;}} public override long OutgoingPacketsWithErrors{get { return ifRow.dwOutErrors;}} public override long IncomingUnknownProtocolPackets{get { return ifRow.dwInUnknownProtos;}} internal long Mtu{get { return ifRow.dwMtu;}} internal OperationalStatus OperationalStatus{ get{ switch (ifRow.operStatus) { case OldOperationalStatus.NonOperational: return OperationalStatus.Down; case OldOperationalStatus.Unreachable: return OperationalStatus.Down; case OldOperationalStatus.Disconnected: return OperationalStatus.Dormant; case OldOperationalStatus.Connecting: return OperationalStatus.Dormant; case OldOperationalStatus.Connected: return OperationalStatus.Up; case OldOperationalStatus.Operational: return OperationalStatus.Up; } //state unknow return OperationalStatus.Unknown; } } internal long Speed{get { return ifRow.dwSpeed;}} //This method is used to get information for ipv4 specific interfaces //we should only call this the first time one of the properties //are accessed. void GetIfEntry(long index) { if (index == 0 ) return; ifRow.dwIndex = (uint)index; uint result = UnsafeNetInfoNativeMethods.GetIfEntry(ref ifRow); if (result != IpHelperErrors.Success) { throw new NetworkInformationException((int)result); } } } } // 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
- HtmlTableCellCollection.cs
- Size3DConverter.cs
- TrustVersion.cs
- Processor.cs
- StreamInfo.cs
- PointF.cs
- ReturnType.cs
- ListViewAutomationPeer.cs
- PrimitiveType.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- TypedTableBaseExtensions.cs
- HybridDictionary.cs
- PresentationTraceSources.cs
- SendMailErrorEventArgs.cs
- DecimalAverageAggregationOperator.cs
- CurrentTimeZone.cs
- CheckableControlBaseAdapter.cs
- XamlReader.cs
- Exceptions.cs
- Message.cs
- SiteMap.cs
- ClientOptions.cs
- WebPartTransformerAttribute.cs
- XmlMemberMapping.cs
- WebPartConnectionsCancelEventArgs.cs
- WebBaseEventKeyComparer.cs
- SortedList.cs
- MethodBody.cs
- ExtentCqlBlock.cs
- GridViewCancelEditEventArgs.cs
- altserialization.cs
- MetadataSerializer.cs
- BitmapEffectGroup.cs
- SqlTriggerContext.cs
- ExpressionBuilder.cs
- HostedHttpContext.cs
- TextReader.cs
- AdjustableArrowCap.cs
- EntityDataSourceReferenceGroup.cs
- selecteditemcollection.cs
- CustomCategoryAttribute.cs
- EventLogStatus.cs
- Size.cs
- CollectionBuilder.cs
- ToolStripDesignerAvailabilityAttribute.cs
- ListenerBinder.cs
- WindowsUpDown.cs
- ClientSettingsProvider.cs
- SessionChannels.cs
- ObjRef.cs
- PresentationTraceSources.cs
- FocusWithinProperty.cs
- PropertyMetadata.cs
- DataColumnChangeEvent.cs
- ReaderWriterLock.cs
- Pair.cs
- Set.cs
- WebRequestModulesSection.cs
- Executor.cs
- _AutoWebProxyScriptHelper.cs
- PasswordTextContainer.cs
- AssemblySettingAttributes.cs
- ParameterCollection.cs
- SectionVisual.cs
- Stacktrace.cs
- TableHeaderCell.cs
- MembershipUser.cs
- ParameterCollection.cs
- Pen.cs
- ToolboxCategory.cs
- EntityClientCacheEntry.cs
- MinMaxParagraphWidth.cs
- ConstantProjectedSlot.cs
- BuildTopDownAttribute.cs
- RegexStringValidator.cs
- DrawingContextDrawingContextWalker.cs
- _IPv4Address.cs
- WebPartConnection.cs
- SerializationSectionGroup.cs
- CssTextWriter.cs
- WebControlParameterProxy.cs
- PageParserFilter.cs
- HostnameComparisonMode.cs
- VarRefManager.cs
- SimpleWorkerRequest.cs
- GregorianCalendarHelper.cs
- DirectoryNotFoundException.cs
- ScriptBehaviorDescriptor.cs
- DynamicScriptObject.cs
- WinEventTracker.cs
- QuotedPrintableStream.cs
- GetPageCompletedEventArgs.cs
- SiteMapPath.cs
- rsa.cs
- InkCanvasFeedbackAdorner.cs
- DbConnectionStringBuilder.cs
- SettingsPropertyNotFoundException.cs
- ListViewItem.cs
- InfiniteIntConverter.cs
- SystemInformation.cs