Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / NetworkInformation / SystemIPInterfaceStatistics.cs / 1305376 / 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
- LoginDesignerUtil.cs
- PublisherMembershipCondition.cs
- PLINQETWProvider.cs
- ReflectionTypeLoadException.cs
- HandlerMappingMemo.cs
- SpeechUI.cs
- WS2007HttpBindingElement.cs
- Size.cs
- ConstraintCollection.cs
- TextRenderer.cs
- BinaryFormatterWriter.cs
- PackageRelationship.cs
- CompatibleIComparer.cs
- HandlerBase.cs
- PageCodeDomTreeGenerator.cs
- DataObjectSettingDataEventArgs.cs
- CheckBoxPopupAdapter.cs
- BitSet.cs
- remotingproxy.cs
- ExcludeFromCodeCoverageAttribute.cs
- DbCommandDefinition.cs
- WarningException.cs
- SpeechSynthesizer.cs
- DefaultSection.cs
- DragDeltaEventArgs.cs
- VirtualizingPanel.cs
- TextLineResult.cs
- OdbcParameterCollection.cs
- DiscoveryServiceExtension.cs
- ClonableStack.cs
- GcSettings.cs
- NavigationProgressEventArgs.cs
- TeredoHelper.cs
- EUCJPEncoding.cs
- MemberInfoSerializationHolder.cs
- OrderByQueryOptionExpression.cs
- SspiNegotiationTokenAuthenticatorState.cs
- HttpHandlerAction.cs
- OdbcParameter.cs
- SafeBitVector32.cs
- TimelineGroup.cs
- ColumnResult.cs
- Pkcs7Signer.cs
- TypeUtils.cs
- ImportOptions.cs
- PageClientProxyGenerator.cs
- TextWriterTraceListener.cs
- BamlResourceSerializer.cs
- DurableInstancingOptions.cs
- DataFormat.cs
- IconHelper.cs
- KeyBinding.cs
- LoadedOrUnloadedOperation.cs
- ListViewItem.cs
- AppendHelper.cs
- InvokeMethod.cs
- RtfFormatStack.cs
- WindowPatternIdentifiers.cs
- RuleRef.cs
- MenuItemAutomationPeer.cs
- DbConnectionClosed.cs
- TypeValidationEventArgs.cs
- TypeListConverter.cs
- OleDbConnectionFactory.cs
- MaterialGroup.cs
- PropertyPathConverter.cs
- SqlCommand.cs
- WeakEventManager.cs
- DataRowComparer.cs
- ServiceHostFactory.cs
- SoapEnumAttribute.cs
- RelationshipEndMember.cs
- TextCollapsingProperties.cs
- XhtmlCssHandler.cs
- AssignDesigner.xaml.cs
- Query.cs
- SqlWriter.cs
- SoapFault.cs
- PointCollectionValueSerializer.cs
- MimeParameterWriter.cs
- TargetPerspective.cs
- RangeBaseAutomationPeer.cs
- BitmapScalingModeValidation.cs
- Dictionary.cs
- CommandDevice.cs
- SystemNetworkInterface.cs
- CallbackException.cs
- WebPartTransformerCollection.cs
- ResourcePool.cs
- FrameworkObject.cs
- GeometryDrawing.cs
- PackageRelationshipSelector.cs
- EncryptedKey.cs
- MailAddress.cs
- PagedDataSource.cs
- SemaphoreSecurity.cs
- VectorAnimation.cs
- DataGridViewRowStateChangedEventArgs.cs
- ContainerControl.cs
- XmlCDATASection.cs