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
- LiteralControl.cs
- CompiledQuery.cs
- XsltCompileContext.cs
- XmlTextReader.cs
- LinkedResourceCollection.cs
- UpdatePanelTriggerCollection.cs
- BaseResourcesBuildProvider.cs
- UdpConstants.cs
- OperationContractGenerationContext.cs
- GridItemCollection.cs
- ListenerConnectionDemuxer.cs
- MappingSource.cs
- SecurityKeyType.cs
- IgnoreDataMemberAttribute.cs
- FastEncoderWindow.cs
- ScriptHandlerFactory.cs
- RadioButtonFlatAdapter.cs
- SparseMemoryStream.cs
- CharStorage.cs
- RenderTargetBitmap.cs
- DuplicateDetector.cs
- ADConnectionHelper.cs
- XmlIterators.cs
- TemplatingOptionsDialog.cs
- FactoryGenerator.cs
- PropertyChangedEventArgs.cs
- InvalidOleVariantTypeException.cs
- ProcessHostConfigUtils.cs
- DbDataAdapter.cs
- Debug.cs
- ServiceHostingEnvironment.cs
- InputLanguageManager.cs
- SubclassTypeValidatorAttribute.cs
- ExpressionBuilder.cs
- PathGradientBrush.cs
- ApplicationManager.cs
- ReferenceConverter.cs
- DirectoryNotFoundException.cs
- connectionpool.cs
- PagedDataSource.cs
- PackageRelationshipCollection.cs
- FileLoadException.cs
- ItemAutomationPeer.cs
- CodeTypeOfExpression.cs
- IList.cs
- sqlstateclientmanager.cs
- PageParser.cs
- Transform3D.cs
- WebServiceReceiveDesigner.cs
- COM2Properties.cs
- ImageMetadata.cs
- SkewTransform.cs
- ErrorStyle.cs
- XmlWellformedWriterHelpers.cs
- RichTextBoxAutomationPeer.cs
- EditableTreeList.cs
- AxHost.cs
- MetaTable.cs
- OperationInvokerTrace.cs
- DbTransaction.cs
- TakeQueryOptionExpression.cs
- ImportCatalogPart.cs
- Preprocessor.cs
- DesignTimeTemplateParser.cs
- ElementMarkupObject.cs
- IdnMapping.cs
- ConfigXmlAttribute.cs
- DesignerDataConnection.cs
- SafeCryptoHandles.cs
- DockAndAnchorLayout.cs
- TreeNode.cs
- TimeZoneNotFoundException.cs
- SrgsDocument.cs
- SqlConnectionString.cs
- ValueSerializerAttribute.cs
- PointAnimation.cs
- ColorBlend.cs
- Descriptor.cs
- IList.cs
- _HeaderInfo.cs
- SafeUserTokenHandle.cs
- EntityCodeGenerator.cs
- MD5.cs
- IgnorePropertiesAttribute.cs
- EventDriven.cs
- EncoderBestFitFallback.cs
- DateTimeSerializationSection.cs
- HtmlEmptyTagControlBuilder.cs
- OdbcConnection.cs
- DataPointer.cs
- DataTableClearEvent.cs
- TextElementEnumerator.cs
- LogEntryUtils.cs
- MetadataException.cs
- MimeBasePart.cs
- ConnectionConsumerAttribute.cs
- Translator.cs
- CompressionTracing.cs
- MessageLogger.cs
- TreeView.cs