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
- ConfigurationManagerInternal.cs
- Grammar.cs
- TextAdaptor.cs
- RegexRunnerFactory.cs
- EpmSourcePathSegment.cs
- RegexGroup.cs
- BitmapEffectInputData.cs
- UnsafeNativeMethods.cs
- CellParaClient.cs
- CookieParameter.cs
- DeflateStream.cs
- XmlCollation.cs
- SamlConditions.cs
- PropertyGrid.cs
- URLAttribute.cs
- AspCompat.cs
- ServiceProviders.cs
- ImplicitInputBrush.cs
- Rect3DConverter.cs
- DNS.cs
- DrawingVisualDrawingContext.cs
- CacheEntry.cs
- SystemParameters.cs
- ArrangedElementCollection.cs
- WebPartZoneBase.cs
- StringBuilder.cs
- WebControlsSection.cs
- DataGridHyperlinkColumn.cs
- TypeKeyValue.cs
- Stylus.cs
- IItemProperties.cs
- UserControl.cs
- Light.cs
- FieldBuilder.cs
- DocumentSequence.cs
- DurableOperationContext.cs
- AxisAngleRotation3D.cs
- SectionInformation.cs
- SafePEFileHandle.cs
- Preprocessor.cs
- ServiceBusyException.cs
- MsmqSecureHashAlgorithm.cs
- IOException.cs
- OleDbEnumerator.cs
- SafeLibraryHandle.cs
- ToolStripSplitStackLayout.cs
- LogicalExpr.cs
- X509Chain.cs
- SizeConverter.cs
- XmlObjectSerializerReadContextComplexJson.cs
- Pointer.cs
- XPathNodeInfoAtom.cs
- XpsResourcePolicy.cs
- ContainerUtilities.cs
- OrthographicCamera.cs
- IItemProperties.cs
- DetailsViewInsertEventArgs.cs
- Deflater.cs
- StyleBamlRecordReader.cs
- PageClientProxyGenerator.cs
- TakeOrSkipQueryOperator.cs
- _NativeSSPI.cs
- TextFormatterContext.cs
- CompleteWizardStep.cs
- EncoderBestFitFallback.cs
- SamlSerializer.cs
- SqlXmlStorage.cs
- DataShape.cs
- PropertyMetadata.cs
- PropertyCondition.cs
- XmlSchemaSequence.cs
- TypeReference.cs
- AccessibleObject.cs
- CmsInterop.cs
- CalendarDataBindingHandler.cs
- HttpCookie.cs
- SecurityUtils.cs
- StringAnimationBase.cs
- ApplicationProxyInternal.cs
- OutputCacheSettings.cs
- DataBindingCollection.cs
- AnimationException.cs
- ListViewDataItem.cs
- CircleHotSpot.cs
- UiaCoreProviderApi.cs
- SamlSerializer.cs
- SemanticResolver.cs
- AssemblySettingAttributes.cs
- BindableAttribute.cs
- SecurityProtocolFactory.cs
- ApplicationServiceHelper.cs
- PixelFormats.cs
- SctClaimDictionary.cs
- ImageSourceValueSerializer.cs
- HttpListener.cs
- Image.cs
- NativeMethods.cs
- GenerateScriptTypeAttribute.cs
- TextTreeTextNode.cs
- SafeEventLogWriteHandle.cs