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
- DesignSurface.cs
- BitmapMetadataEnumerator.cs
- ByteStorage.cs
- HttpCacheVary.cs
- LoginView.cs
- SafeLibraryHandle.cs
- ZipArchive.cs
- PrefixQName.cs
- SelectionRangeConverter.cs
- Substitution.cs
- DriveInfo.cs
- CategoryNameCollection.cs
- InstancePersistenceContext.cs
- ValuePattern.cs
- SortDescriptionCollection.cs
- GenericWebPart.cs
- XmlSchemaObject.cs
- InfoCardAsymmetricCrypto.cs
- QueryAccessibilityHelpEvent.cs
- CounterCreationDataCollection.cs
- CellConstantDomain.cs
- ProfileInfo.cs
- dataobject.cs
- WebReferencesBuildProvider.cs
- WebChannelFactory.cs
- BindingMemberInfo.cs
- XmlLanguage.cs
- TextBox.cs
- ObjectConverter.cs
- FacetValueContainer.cs
- MsmqActivation.cs
- ExpressionPrinter.cs
- OracleParameter.cs
- XsltConvert.cs
- SqlDataSourceEnumerator.cs
- Stacktrace.cs
- ContourSegment.cs
- LicenseManager.cs
- OutKeywords.cs
- ColumnHeaderConverter.cs
- RelatedView.cs
- UIAgentRequest.cs
- SolidColorBrush.cs
- WaitHandleCannotBeOpenedException.cs
- ResourceReferenceExpressionConverter.cs
- DeclaredTypeValidator.cs
- CodeRegionDirective.cs
- Mutex.cs
- SizeChangedInfo.cs
- PassportPrincipal.cs
- InputMethodStateChangeEventArgs.cs
- PlacementWorkspace.cs
- TextLineResult.cs
- WebPartChrome.cs
- Quaternion.cs
- ListMarkerSourceInfo.cs
- LabelAutomationPeer.cs
- DataFormats.cs
- OutputCacheProfile.cs
- CroppedBitmap.cs
- SQLStringStorage.cs
- CryptoHelper.cs
- ParenthesizePropertyNameAttribute.cs
- QueryExpression.cs
- DockAndAnchorLayout.cs
- GeometryModel3D.cs
- ExpressionEditorAttribute.cs
- DataGrid.cs
- Choices.cs
- ManualResetEvent.cs
- DefaultObjectMappingItemCollection.cs
- ContentElement.cs
- X509CertificateTrustedIssuerElement.cs
- WebPartManager.cs
- ConfigurationHelpers.cs
- PriorityQueue.cs
- BitConverter.cs
- AttributeCollection.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- ViewStateModeByIdAttribute.cs
- DrawingContextWalker.cs
- KnownTypeAttribute.cs
- Freezable.cs
- ParentUndoUnit.cs
- StaticExtensionConverter.cs
- EntityContainer.cs
- DataViewSettingCollection.cs
- ConfigurationSectionGroup.cs
- TypeLoadException.cs
- FileLogRecordHeader.cs
- GC.cs
- TextServicesLoader.cs
- XComponentModel.cs
- ConfigurationPropertyCollection.cs
- ListViewCommandEventArgs.cs
- WebPartConnectionsCloseVerb.cs
- SoapAttributeAttribute.cs
- XmlChildNodes.cs
- SingleResultAttribute.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs