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
- ToolStripStatusLabel.cs
- OuterGlowBitmapEffect.cs
- StructuredTypeEmitter.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- WizardPanel.cs
- ThousandthOfEmRealPoints.cs
- ChangeProcessor.cs
- XmlSchemaSubstitutionGroup.cs
- PerformanceCountersElement.cs
- QueryContinueDragEventArgs.cs
- Convert.cs
- TagElement.cs
- CqlWriter.cs
- InputBindingCollection.cs
- XmlnsCompatibleWithAttribute.cs
- AppSecurityManager.cs
- BitmapEffectInputConnector.cs
- LinkButton.cs
- Asn1IntegerConverter.cs
- AssertFilter.cs
- InternalUserCancelledException.cs
- ObjectViewFactory.cs
- X509Logo.cs
- PersonalizationState.cs
- ContextDataSourceContextData.cs
- EmbeddedMailObject.cs
- DrawingCollection.cs
- KnownIds.cs
- FixedTextContainer.cs
- ValidateNames.cs
- XsltContext.cs
- ResourceReader.cs
- AuthorizationSection.cs
- ForeignConstraint.cs
- CachedFontFamily.cs
- ProfilePropertySettings.cs
- UIElement.cs
- BuildManager.cs
- ToggleProviderWrapper.cs
- PreservationFileWriter.cs
- XmlSchemaComplexContentExtension.cs
- ScaleTransform.cs
- XmlDigitalSignatureProcessor.cs
- D3DImage.cs
- SystemEvents.cs
- VSWCFServiceContractGenerator.cs
- PassportAuthentication.cs
- TrackBar.cs
- Context.cs
- StructuredTypeEmitter.cs
- ExecutedRoutedEventArgs.cs
- SwitchAttribute.cs
- PrintPageEvent.cs
- XmlSchemaSimpleTypeList.cs
- PriorityBindingExpression.cs
- WindowsGraphicsWrapper.cs
- StrokeNode.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- QilTargetType.cs
- ReferenceEqualityComparer.cs
- DataGridPageChangedEventArgs.cs
- MeasurementDCInfo.cs
- BStrWrapper.cs
- ResXBuildProvider.cs
- ProfileService.cs
- COM2ICategorizePropertiesHandler.cs
- TimeEnumHelper.cs
- DragEvent.cs
- SamlAuthorizationDecisionClaimResource.cs
- RNGCryptoServiceProvider.cs
- NamespaceCollection.cs
- BinaryFormatterWriter.cs
- WebContext.cs
- MatrixTransform3D.cs
- CultureInfoConverter.cs
- XmlMemberMapping.cs
- NativeMethods.cs
- CookielessData.cs
- DbMetaDataColumnNames.cs
- NativeMethodsCLR.cs
- DurationConverter.cs
- DependencyPropertyChangedEventArgs.cs
- UserControlParser.cs
- CodeIdentifier.cs
- MenuItemCollectionEditorDialog.cs
- XmlTextWriter.cs
- ExpressionBinding.cs
- PasswordRecovery.cs
- XmlException.cs
- FlowLayout.cs
- SqlCacheDependencyDatabase.cs
- InvokeProviderWrapper.cs
- SafeRightsManagementPubHandle.cs
- ReceiveContext.cs
- ErrorFormatterPage.cs
- DataPager.cs
- ModelTreeEnumerator.cs
- MenuAdapter.cs
- SafeBitVector32.cs
- ChildTable.cs