Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- XPathNavigator.cs
- MsmqInputMessagePool.cs
- CodeIdentifier.cs
- TemplateField.cs
- TimeoutValidationAttribute.cs
- SystemIPv6InterfaceProperties.cs
- _UriSyntax.cs
- BooleanConverter.cs
- IPAddress.cs
- NestedContainer.cs
- DataGridViewBindingCompleteEventArgs.cs
- ConstructorArgumentAttribute.cs
- RegexBoyerMoore.cs
- ReferenceEqualityComparer.cs
- CornerRadiusConverter.cs
- FilterException.cs
- SqlBulkCopy.cs
- FontSizeConverter.cs
- Span.cs
- MultiSelectRootGridEntry.cs
- SqlFunctionAttribute.cs
- EntityDataSourceStatementEditorForm.cs
- DiscreteKeyFrames.cs
- MatrixAnimationUsingKeyFrames.cs
- RtfToXamlLexer.cs
- DataPager.cs
- AppDomainUnloadedException.cs
- GreenMethods.cs
- TextMessageEncodingBindingElement.cs
- UriTemplatePathSegment.cs
- DataGridViewCellStyleBuilderDialog.cs
- Thumb.cs
- DoubleLink.cs
- MenuScrollingVisibilityConverter.cs
- OutputCacheSection.cs
- DynamicPropertyHolder.cs
- NotifyInputEventArgs.cs
- TaskExceptionHolder.cs
- ErrorView.xaml.cs
- Assert.cs
- CharacterBufferReference.cs
- TextFormatterContext.cs
- DesignerTransaction.cs
- FixedSOMElement.cs
- DictionaryBase.cs
- SqlDataSourceView.cs
- UnsafeNativeMethods.cs
- ColorBlend.cs
- NavigationHelper.cs
- Misc.cs
- TreeNodeClickEventArgs.cs
- ResourceExpressionEditorSheet.cs
- Ref.cs
- LeftCellWrapper.cs
- Html32TextWriter.cs
- SemaphoreFullException.cs
- WindowsListViewScroll.cs
- CalloutQueueItem.cs
- SafeProcessHandle.cs
- PrintingPermission.cs
- SecureStringHasher.cs
- WebResourceAttribute.cs
- PinnedBufferMemoryStream.cs
- LiteralTextContainerControlBuilder.cs
- DetailsViewRowCollection.cs
- SystemFonts.cs
- MenuItem.cs
- DataGridState.cs
- LoginName.cs
- NavigationEventArgs.cs
- SystemInfo.cs
- MarkupCompilePass1.cs
- SqlCaseSimplifier.cs
- CounterSampleCalculator.cs
- QueryExtender.cs
- TextPatternIdentifiers.cs
- RequiredAttributeAttribute.cs
- Matrix3D.cs
- MediaPlayer.cs
- CharEntityEncoderFallback.cs
- ButtonBaseAutomationPeer.cs
- GridViewPageEventArgs.cs
- CompositionTarget.cs
- ResourceDescriptionAttribute.cs
- WebPartDisplayMode.cs
- TransformCryptoHandle.cs
- RegistrySecurity.cs
- TcpServerChannel.cs
- Geometry.cs
- EditableTreeList.cs
- DSGeneratorProblem.cs
- NameValueCollection.cs
- SoapServerMethod.cs
- SettingsPropertyNotFoundException.cs
- ChannelManagerService.cs
- XslNumber.cs
- CoreSwitches.cs
- BitmapEffectGeneralTransform.cs
- FontFamilyValueSerializer.cs
- SearchForVirtualItemEventArgs.cs