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
- SplineQuaternionKeyFrame.cs
- FormViewInsertedEventArgs.cs
- MiniConstructorInfo.cs
- XmlIterators.cs
- LocalFileSettingsProvider.cs
- XPathNode.cs
- DetailsViewUpdatedEventArgs.cs
- EmptyEnumerable.cs
- TrailingSpaceComparer.cs
- DSASignatureFormatter.cs
- ButtonBaseDesigner.cs
- SessionStateModule.cs
- UnaryNode.cs
- ETagAttribute.cs
- SqlRemoveConstantOrderBy.cs
- RelatedView.cs
- ObjRef.cs
- ValueOfAction.cs
- Utils.cs
- TriState.cs
- cookie.cs
- PersonalizableTypeEntry.cs
- Graph.cs
- GACIdentityPermission.cs
- ColorIndependentAnimationStorage.cs
- ExtenderHelpers.cs
- DataMisalignedException.cs
- ConfigXmlDocument.cs
- SizeAnimation.cs
- DynamicPhysicalDiscoSearcher.cs
- _UncName.cs
- RegexTree.cs
- QuaternionAnimation.cs
- SqlMetaData.cs
- HashCodeCombiner.cs
- ThreadStateException.cs
- DataGridViewUtilities.cs
- XhtmlBasicPhoneCallAdapter.cs
- TrackingMemoryStream.cs
- ResourcePermissionBase.cs
- RecommendedAsConfigurableAttribute.cs
- ArgIterator.cs
- StylusEventArgs.cs
- Stroke.cs
- HandleCollector.cs
- SizeConverter.cs
- FeatureSupport.cs
- DataRecordInternal.cs
- ScrollViewer.cs
- WindowsTitleBar.cs
- CoTaskMemHandle.cs
- GridErrorDlg.cs
- RemoteWebConfigurationHostServer.cs
- DbDataRecord.cs
- FormViewCommandEventArgs.cs
- ServiceChannelProxy.cs
- HttpDebugHandler.cs
- Helpers.cs
- GridViewActionList.cs
- UIPropertyMetadata.cs
- Pts.cs
- WebDisplayNameAttribute.cs
- TableLayoutSettings.cs
- ApplicationId.cs
- TextPenaltyModule.cs
- WebPartCatalogAddVerb.cs
- ContentValidator.cs
- HostUtils.cs
- FormatConvertedBitmap.cs
- ToolboxItem.cs
- _ServiceNameStore.cs
- Boolean.cs
- WebPartAuthorizationEventArgs.cs
- ELinqQueryState.cs
- TableHeaderCell.cs
- BindingList.cs
- DbInsertCommandTree.cs
- Encoder.cs
- DescendantOverDescendantQuery.cs
- X509CertificateTokenFactoryCredential.cs
- LambdaCompiler.Statements.cs
- WindowsGraphicsWrapper.cs
- EncryptedXml.cs
- HandleCollector.cs
- FactoryId.cs
- CompilerLocalReference.cs
- TextViewSelectionProcessor.cs
- DropAnimation.xaml.cs
- ParserStreamGeometryContext.cs
- XsltCompileContext.cs
- SessionStateSection.cs
- ObjectStateEntry.cs
- recordstatescratchpad.cs
- DataGridViewComboBoxEditingControl.cs
- DataTable.cs
- MaskedTextBox.cs
- FileDialog.cs
- SqlMethodAttribute.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- _NegoStream.cs