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
- ConstructorNeedsTagAttribute.cs
- CompositeDataBoundControl.cs
- EditingMode.cs
- HttpApplication.cs
- Oid.cs
- RuntimeCompatibilityAttribute.cs
- PKCS1MaskGenerationMethod.cs
- SqlUDTStorage.cs
- CompiledQueryCacheEntry.cs
- PixelShader.cs
- StoreItemCollection.Loader.cs
- MatrixUtil.cs
- ExtensionSimplifierMarkupObject.cs
- TimeoutHelper.cs
- IteratorFilter.cs
- StaticExtension.cs
- CustomErrorCollection.cs
- DataGridCaption.cs
- XmlCodeExporter.cs
- CapiSymmetricAlgorithm.cs
- RotateTransform3D.cs
- TrackPoint.cs
- DataSourceProvider.cs
- ValueChangedEventManager.cs
- LambdaExpression.cs
- RelationshipConstraintValidator.cs
- RotationValidation.cs
- MemoryPressure.cs
- XmlEnumAttribute.cs
- XmlSecureResolver.cs
- XsltArgumentList.cs
- EnterpriseServicesHelper.cs
- MLangCodePageEncoding.cs
- CollectionDataContractAttribute.cs
- PagedDataSource.cs
- StylusPoint.cs
- ControlBuilderAttribute.cs
- ContextMenu.cs
- parserscommon.cs
- WriteableBitmap.cs
- EventLogQuery.cs
- OracleDateTime.cs
- RemotingServices.cs
- ReadOnlyDictionary.cs
- KeyManager.cs
- TripleDESCryptoServiceProvider.cs
- ImportRequest.cs
- SystemResources.cs
- DefinitionUpdate.cs
- BezierSegment.cs
- ImageSourceTypeConverter.cs
- Win32KeyboardDevice.cs
- MailHeaderInfo.cs
- InfocardChannelParameter.cs
- EpmSourceTree.cs
- CompilerGlobalScopeAttribute.cs
- LinearGradientBrush.cs
- HostedNamedPipeTransportManager.cs
- CmsInterop.cs
- WindowsButton.cs
- CryptoConfig.cs
- VisualStateManager.cs
- InputLanguageCollection.cs
- CurrentChangingEventArgs.cs
- ModelItemCollectionImpl.cs
- BitmapCodecInfo.cs
- ParagraphVisual.cs
- TextAutomationPeer.cs
- SqlCommand.cs
- CellLabel.cs
- CellLabel.cs
- QueryableDataSourceEditData.cs
- KeyEvent.cs
- ByteFacetDescriptionElement.cs
- SecurityUniqueId.cs
- TraceSection.cs
- SimpleWebHandlerParser.cs
- DemultiplexingClientMessageFormatter.cs
- DbParameterCollectionHelper.cs
- XmlQueryType.cs
- SapiGrammar.cs
- XmlSchemaCollection.cs
- Size.cs
- ItemCollection.cs
- IncrementalReadDecoders.cs
- translator.cs
- TemplateManager.cs
- CustomWebEventKey.cs
- MultiSelectRootGridEntry.cs
- IsolatedStorageFilePermission.cs
- FormViewUpdatedEventArgs.cs
- PopOutPanel.cs
- SortedList.cs
- PropertyInformationCollection.cs
- DBCommandBuilder.cs
- SecurityPermission.cs
- TextDecorationCollectionConverter.cs
- ItemCheckedEvent.cs
- JsonXmlDataContract.cs
- HttpConfigurationSystem.cs