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
- DateTimeEditor.cs
- SortFieldComparer.cs
- DocumentViewer.cs
- TranslateTransform.cs
- CommonDialog.cs
- GrammarBuilderDictation.cs
- XPathBinder.cs
- DataSysAttribute.cs
- StringArrayConverter.cs
- Itemizer.cs
- Thickness.cs
- HtmlWindow.cs
- CodePrimitiveExpression.cs
- BooleanProjectedSlot.cs
- ReflectionServiceProvider.cs
- IResourceProvider.cs
- AuthStoreRoleProvider.cs
- UTF7Encoding.cs
- BlurBitmapEffect.cs
- LocationReference.cs
- SamlAssertionKeyIdentifierClause.cs
- Itemizer.cs
- HexParser.cs
- DriveInfo.cs
- MemoryStream.cs
- COAUTHIDENTITY.cs
- MultiSelectRootGridEntry.cs
- AttributeCallbackBuilder.cs
- AssertUtility.cs
- MeshGeometry3D.cs
- RowBinding.cs
- ArgumentElement.cs
- IriParsingElement.cs
- SmtpDigestAuthenticationModule.cs
- DesignerVerbCollection.cs
- XmlSchemaIdentityConstraint.cs
- CheckBoxPopupAdapter.cs
- FlowLayoutPanel.cs
- SqlGatherProducedAliases.cs
- NativeMethods.cs
- ConsumerConnectionPointCollection.cs
- PathGeometry.cs
- ByteConverter.cs
- WindowsListViewScroll.cs
- PreservationFileReader.cs
- TreeNodeCollection.cs
- ReadOnlyObservableCollection.cs
- MessagePropertyDescriptionCollection.cs
- FormParameter.cs
- FtpWebRequest.cs
- ConnectionOrientedTransportChannelFactory.cs
- Speller.cs
- FrameworkTemplate.cs
- COM2Properties.cs
- CodeLabeledStatement.cs
- XmlValidatingReader.cs
- PointIndependentAnimationStorage.cs
- SplitterCancelEvent.cs
- EdmMember.cs
- SafeHandle.cs
- Item.cs
- SocketElement.cs
- XmlSchemaObjectTable.cs
- CssTextWriter.cs
- ReturnValue.cs
- RightsManagementPermission.cs
- SerializationTrace.cs
- SqlEnums.cs
- TreeWalker.cs
- StyleXamlParser.cs
- ServiceAuthorizationManager.cs
- IdentityReference.cs
- Collection.cs
- ActiveXHelper.cs
- OleDbRowUpdatingEvent.cs
- mongolianshape.cs
- SemaphoreFullException.cs
- OracleParameter.cs
- ConnectionManagementElement.cs
- HijriCalendar.cs
- JournalNavigationScope.cs
- ConfigurationValues.cs
- ViewValidator.cs
- MenuItemBinding.cs
- mongolianshape.cs
- OleDbError.cs
- TransactionProxy.cs
- WebPartConnectionsCancelVerb.cs
- CardSpaceShim.cs
- TypeLibConverter.cs
- XmlUtilWriter.cs
- LocatorManager.cs
- GlyphingCache.cs
- ReflectEventDescriptor.cs
- HuffModule.cs
- NotCondition.cs
- XmlTextReader.cs
- PrintPreviewGraphics.cs
- CopyEncoder.cs
- MdiWindowListStrip.cs