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
- PersonalizableTypeEntry.cs
- ResourcePool.cs
- RemotingServices.cs
- GcSettings.cs
- ChannelSinkStacks.cs
- PropertyPushdownHelper.cs
- CodeParameterDeclarationExpression.cs
- ObjectStateFormatter.cs
- Matrix3D.cs
- DataGridViewColumnEventArgs.cs
- SafeTokenHandle.cs
- Main.cs
- HttpListenerContext.cs
- Rotation3DAnimation.cs
- BuildManagerHost.cs
- httpstaticobjectscollection.cs
- ZipIOLocalFileHeader.cs
- WebConfigurationHostFileChange.cs
- ScaleTransform.cs
- EventLogPermissionEntryCollection.cs
- AnimationClockResource.cs
- SystemInfo.cs
- RoleManagerModule.cs
- ValueQuery.cs
- CurrentChangingEventArgs.cs
- prompt.cs
- KeyValuePair.cs
- SerialErrors.cs
- WebPartActionVerb.cs
- NavigateUrlConverter.cs
- UnsafeNativeMethods.cs
- IncrementalReadDecoders.cs
- TextEditorThreadLocalStore.cs
- OleDbDataReader.cs
- BulletDecorator.cs
- ToolStripContentPanel.cs
- DependencyPropertyAttribute.cs
- WebPartCloseVerb.cs
- FindCriteriaApril2005.cs
- XmlQuerySequence.cs
- AdapterSwitches.cs
- MemberAccessException.cs
- ListItemConverter.cs
- OutputCacheProfileCollection.cs
- PeerChannelListener.cs
- XPathNodeInfoAtom.cs
- RefreshInfo.cs
- PageTextBox.cs
- RoleService.cs
- TreeNodeStyle.cs
- SqlFunctionAttribute.cs
- HtmlInputRadioButton.cs
- ToolStripDropTargetManager.cs
- Empty.cs
- XmlnsCompatibleWithAttribute.cs
- xml.cs
- DesignerWebPartChrome.cs
- WindowsToolbar.cs
- StateMachineExecutionState.cs
- EnumValAlphaComparer.cs
- SqlXmlStorage.cs
- XmlSignatureProperties.cs
- FixedSOMElement.cs
- ColorMap.cs
- FontNamesConverter.cs
- DataGridViewCellFormattingEventArgs.cs
- StructuralObject.cs
- WorkflowInstanceProxy.cs
- BamlRecordWriter.cs
- WebPartVerb.cs
- SafeRightsManagementSessionHandle.cs
- Interlocked.cs
- FileAuthorizationModule.cs
- Rotation3DAnimation.cs
- AttachInfo.cs
- _WebProxyDataBuilder.cs
- ResourceCodeDomSerializer.cs
- PerformanceCounterPermissionEntry.cs
- RegionInfo.cs
- QfeChecker.cs
- HtmlUtf8RawTextWriter.cs
- EditingMode.cs
- ReferenceService.cs
- HtmlCalendarAdapter.cs
- XmlDictionaryReaderQuotasElement.cs
- Single.cs
- CqlQuery.cs
- AttachedAnnotation.cs
- BinaryObjectReader.cs
- WebServiceFault.cs
- LinqToSqlWrapper.cs
- ContentIterators.cs
- OledbConnectionStringbuilder.cs
- DataSourceViewSchemaConverter.cs
- PropertyMapper.cs
- PropertyBuilder.cs
- input.cs
- DataGridViewRowStateChangedEventArgs.cs
- Component.cs
- DBBindings.cs