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
- FusionWrap.cs
- SignedXml.cs
- RequestCache.cs
- DayRenderEvent.cs
- VisualBasicReference.cs
- UnsafeNativeMethods.cs
- ActiveXHost.cs
- BooleanSwitch.cs
- Message.cs
- TemplateColumn.cs
- HtmlButton.cs
- WebRequestModuleElementCollection.cs
- FlowDocumentPageViewerAutomationPeer.cs
- DBConnection.cs
- OraclePermissionAttribute.cs
- DataListItem.cs
- GrammarBuilderBase.cs
- LateBoundBitmapDecoder.cs
- MouseWheelEventArgs.cs
- MailBnfHelper.cs
- MatcherBuilder.cs
- Profiler.cs
- HttpProfileBase.cs
- CodeAssignStatement.cs
- ConstructorBuilder.cs
- ImplicitInputBrush.cs
- Cursors.cs
- EventManager.cs
- VariableAction.cs
- DbProviderConfigurationHandler.cs
- ConfigXmlElement.cs
- TreeNodeEventArgs.cs
- PropertyBuilder.cs
- ReadOnlyHierarchicalDataSourceView.cs
- GroupItem.cs
- DataIdProcessor.cs
- SamlDelegatingWriter.cs
- HttpCachePolicy.cs
- mansign.cs
- MSAAWinEventWrap.cs
- KnownTypesProvider.cs
- counter.cs
- ListSourceHelper.cs
- FragmentQuery.cs
- SoundPlayer.cs
- Image.cs
- DataObjectMethodAttribute.cs
- Compiler.cs
- HtmlValidatorAdapter.cs
- HostedElements.cs
- Site.cs
- DataList.cs
- InheritablePropertyChangeInfo.cs
- X509SecurityToken.cs
- OracleParameter.cs
- SyntaxCheck.cs
- Int64Storage.cs
- PeerInputChannelListener.cs
- HostedElements.cs
- DeferredSelectedIndexReference.cs
- TimeIntervalCollection.cs
- ProtocolsConfiguration.cs
- ErrorRuntimeConfig.cs
- UntrustedRecipientException.cs
- DoubleAnimationUsingPath.cs
- ObjectParameter.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- FlowLayoutSettings.cs
- ObjectReaderCompiler.cs
- RuleSetDialog.Designer.cs
- HtmlGenericControl.cs
- FixUp.cs
- InvocationExpression.cs
- DocumentDesigner.cs
- PasswordPropertyTextAttribute.cs
- AppearanceEditorPart.cs
- UnsupportedPolicyOptionsException.cs
- MultiAsyncResult.cs
- InvalidPropValue.cs
- TokenBasedSetEnumerator.cs
- ColumnTypeConverter.cs
- AssemblyInfo.cs
- WebServiceData.cs
- ConstraintCollection.cs
- TypeInitializationException.cs
- MenuItem.cs
- VoiceChangeEventArgs.cs
- cookie.cs
- Transform.cs
- RelationHandler.cs
- ParsedRoute.cs
- HttpApplicationFactory.cs
- AutomationTextAttribute.cs
- Geometry3D.cs
- EncryptedType.cs
- DelayedRegex.cs
- MaxMessageSizeStream.cs
- CodeDOMUtility.cs
- PageAdapter.cs
- ValueOfAction.cs