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
- followingquery.cs
- QilNode.cs
- ByteAnimationUsingKeyFrames.cs
- DataBindingList.cs
- XPathNodeHelper.cs
- ValidationEventArgs.cs
- IDictionary.cs
- Image.cs
- SingleAnimation.cs
- DataTableClearEvent.cs
- MultipartIdentifier.cs
- PagesSection.cs
- SoapAttributeAttribute.cs
- RowType.cs
- TextFormatterContext.cs
- DefaultShape.cs
- DataBoundControlHelper.cs
- AnnotationComponentManager.cs
- StringTraceRecord.cs
- TraceSwitch.cs
- PlatformNotSupportedException.cs
- Win32KeyboardDevice.cs
- TextTabProperties.cs
- TrustManagerPromptUI.cs
- ConfigXmlComment.cs
- DataContractSet.cs
- ProfileEventArgs.cs
- GenericRootAutomationPeer.cs
- GridProviderWrapper.cs
- TokenCreationParameter.cs
- QueryContext.cs
- PassportAuthentication.cs
- StringToken.cs
- SqlDataSource.cs
- WindowsUpDown.cs
- FilteredDataSetHelper.cs
- CommunicationException.cs
- COAUTHIDENTITY.cs
- OleDbEnumerator.cs
- ContractAdapter.cs
- EarlyBoundInfo.cs
- DependencySource.cs
- ConfigXmlComment.cs
- AccessedThroughPropertyAttribute.cs
- XhtmlBasicImageAdapter.cs
- ChtmlCalendarAdapter.cs
- Style.cs
- ContractReference.cs
- TypeFieldSchema.cs
- Icon.cs
- Configuration.cs
- ExpressionList.cs
- ObjectItemCollection.cs
- CommandID.cs
- CodeArrayIndexerExpression.cs
- WebServiceHostFactory.cs
- Blend.cs
- LogStore.cs
- EmptyEnumerable.cs
- mactripleDES.cs
- SqlResolver.cs
- EntityDataSourceWizardForm.cs
- RectangleHotSpot.cs
- UpdateManifestForBrowserApplication.cs
- RuntimeEnvironment.cs
- MissingSatelliteAssemblyException.cs
- CodeCatchClauseCollection.cs
- BrowserDefinition.cs
- HelpInfo.cs
- DataTableClearEvent.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- InvalidCastException.cs
- SqlDataSourceCommandEventArgs.cs
- DataGridViewRowEventArgs.cs
- WebPartMovingEventArgs.cs
- SafeSystemMetrics.cs
- PlatformNotSupportedException.cs
- Sentence.cs
- ClientOperation.cs
- XslUrlEditor.cs
- MessageFormatterConverter.cs
- DynamicEndpoint.cs
- IChannel.cs
- CapabilitiesAssignment.cs
- XPathNavigatorReader.cs
- UTF32Encoding.cs
- WorkflowMarkupSerializationProvider.cs
- TextFormatterContext.cs
- ListDictionaryInternal.cs
- WebSysDefaultValueAttribute.cs
- CollectionType.cs
- IPGlobalProperties.cs
- CdpEqualityComparer.cs
- ContextDataSource.cs
- ProjectionCamera.cs
- VariantWrapper.cs
- Message.cs
- NativeMethods.cs
- TypeElement.cs
- MouseButtonEventArgs.cs