Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- InvalidComObjectException.cs
- AttributeData.cs
- ExpandCollapseProviderWrapper.cs
- HtmlValidationSummaryAdapter.cs
- ObjectDataSourceDisposingEventArgs.cs
- EndpointIdentityConverter.cs
- _HTTPDateParse.cs
- WebConfigurationHost.cs
- CollectionBase.cs
- handlecollector.cs
- ByteRangeDownloader.cs
- SettingsProviderCollection.cs
- CdpEqualityComparer.cs
- MethodBody.cs
- OdbcConnectionHandle.cs
- DesignerOptionService.cs
- DiscreteKeyFrames.cs
- SapiGrammar.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- EntityObject.cs
- GenericWebPart.cs
- Mutex.cs
- SingleSelectRootGridEntry.cs
- IdentityHolder.cs
- RequestContextBase.cs
- ProgressChangedEventArgs.cs
- EncodingDataItem.cs
- RefreshPropertiesAttribute.cs
- AnnotationAdorner.cs
- RolePrincipal.cs
- EraserBehavior.cs
- BypassElementCollection.cs
- ExpressionConverter.cs
- ObjectComplexPropertyMapping.cs
- mediaeventargs.cs
- ReliabilityContractAttribute.cs
- NativeMethods.cs
- NameTable.cs
- SocketElement.cs
- CodeLabeledStatement.cs
- ServerIdentity.cs
- QueryModel.cs
- Char.cs
- CharUnicodeInfo.cs
- RuleEngine.cs
- CachedPathData.cs
- PopupRootAutomationPeer.cs
- ComPlusServiceLoader.cs
- ValidatingPropertiesEventArgs.cs
- ColumnResult.cs
- Console.cs
- ModelTypeConverter.cs
- NameValueConfigurationCollection.cs
- PinnedBufferMemoryStream.cs
- PreviewKeyDownEventArgs.cs
- NullExtension.cs
- XPathNodeList.cs
- DataBinder.cs
- FunctionImportElement.cs
- MemoryFailPoint.cs
- ProgressBarAutomationPeer.cs
- ImageMap.cs
- ProvidePropertyAttribute.cs
- ContainerSelectorActiveEvent.cs
- NavigationProgressEventArgs.cs
- FolderBrowserDialogDesigner.cs
- HtmlImage.cs
- unitconverter.cs
- SafeLocalMemHandle.cs
- CqlGenerator.cs
- SchemaElementDecl.cs
- objectresult_tresulttype.cs
- MaterialCollection.cs
- XmlSchemaObjectTable.cs
- ObjectDataSourceEventArgs.cs
- XmlSerializer.cs
- VisualBasicReference.cs
- SocketAddress.cs
- WebServiceEnumData.cs
- NullEntityWrapper.cs
- ReflectPropertyDescriptor.cs
- BrowserDefinition.cs
- SiteMapDataSource.cs
- BamlTreeUpdater.cs
- EntityDataSourceChangedEventArgs.cs
- SqlConnectionHelper.cs
- XmlLanguageConverter.cs
- XmlDictionaryReader.cs
- LineGeometry.cs
- MaskedTextBox.cs
- ValidatorCompatibilityHelper.cs
- SoapMessage.cs
- LogStore.cs
- XMLUtil.cs
- AttributeCollection.cs
- SslStream.cs
- MemberRelationshipService.cs
- TraceListeners.cs
- CompoundFileIOPermission.cs
- ExpressionQuoter.cs