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
- InfocardExtendedInformationCollection.cs
- DataGridToolTip.cs
- HttpResponse.cs
- InteropAutomationProvider.cs
- OperatingSystem.cs
- QilExpression.cs
- FileDialogCustomPlaces.cs
- PolicyException.cs
- SignerInfo.cs
- PrimitiveType.cs
- ProjectionCamera.cs
- QilLiteral.cs
- DesignerActionUIStateChangeEventArgs.cs
- ISAPIWorkerRequest.cs
- NonClientArea.cs
- CharacterString.cs
- TreeIterator.cs
- AssemblyInfo.cs
- WindowsPrincipal.cs
- OpenFileDialog.cs
- SplineQuaternionKeyFrame.cs
- SqlHelper.cs
- EllipticalNodeOperations.cs
- ClientFormsIdentity.cs
- ValidatorCollection.cs
- TabControlEvent.cs
- TableLayoutSettingsTypeConverter.cs
- ExpressionBuilderCollection.cs
- XmlnsPrefixAttribute.cs
- InitializerFacet.cs
- BeginStoryboard.cs
- ProxyElement.cs
- WebPartActionVerb.cs
- HierarchicalDataSourceIDConverter.cs
- Selector.cs
- XmlFileEditor.cs
- NativeMethods.cs
- IDispatchConstantAttribute.cs
- TraceHandler.cs
- DynamicArgumentDialog.cs
- ArithmeticException.cs
- UnsafeNativeMethods.cs
- PlainXmlSerializer.cs
- __ComObject.cs
- WindowsFormsEditorServiceHelper.cs
- PropertyDescriptorCollection.cs
- UTF32Encoding.cs
- VirtualDirectoryMapping.cs
- EditModeSwitchButton.cs
- HttpException.cs
- SingleTagSectionHandler.cs
- DesignerProperties.cs
- AnimatedTypeHelpers.cs
- PropertyValue.cs
- IxmlLineInfo.cs
- HtmlInputButton.cs
- XsltFunctions.cs
- AnalyzedTree.cs
- DPAPIProtectedConfigurationProvider.cs
- RuleRef.cs
- UDPClient.cs
- Border.cs
- DispatchWrapper.cs
- DataGridViewTextBoxEditingControl.cs
- SQLByteStorage.cs
- RegexMatchCollection.cs
- ElementAction.cs
- ImageMapEventArgs.cs
- DataSetFieldSchema.cs
- PrintDialogException.cs
- InheritanceAttribute.cs
- IPEndPoint.cs
- CatalogPart.cs
- Point3DAnimationUsingKeyFrames.cs
- DoubleAnimationBase.cs
- QilParameter.cs
- SrgsElementFactoryCompiler.cs
- ComponentManagerBroker.cs
- MatrixAnimationUsingKeyFrames.cs
- BaseValidatorDesigner.cs
- StrongName.cs
- Transform3DCollection.cs
- SqlConnectionString.cs
- TableColumnCollection.cs
- InkCanvasSelection.cs
- CacheOutputQuery.cs
- FixedTextBuilder.cs
- MatrixTransform.cs
- RoutedEventHandlerInfo.cs
- PackagingUtilities.cs
- AutomationPeer.cs
- CompilerParameters.cs
- HtmlFormWrapper.cs
- _ListenerResponseStream.cs
- cookieexception.cs
- CollectionContainer.cs
- DriveInfo.cs
- ListParagraph.cs
- CqlLexer.cs
- UrlMappingsModule.cs