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
- DoWorkEventArgs.cs
- DataObjectCopyingEventArgs.cs
- TileModeValidation.cs
- OdbcRowUpdatingEvent.cs
- GlyphingCache.cs
- Update.cs
- JournalEntryListConverter.cs
- RequestCachingSection.cs
- Cursors.cs
- FixedDocumentSequencePaginator.cs
- CodeTypeDeclaration.cs
- MessageLoggingFilterTraceRecord.cs
- followingquery.cs
- EntityDataSourceContainerNameConverter.cs
- DataSourceCache.cs
- NumberSubstitution.cs
- CollectionConverter.cs
- IisTraceListener.cs
- X509CertificateInitiatorServiceCredential.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- SqlClientFactory.cs
- BaseCollection.cs
- EditorReuseAttribute.cs
- HttpClientChannel.cs
- IisTraceWebEventProvider.cs
- GPRECTF.cs
- NumberSubstitution.cs
- VarRemapper.cs
- ListViewPagedDataSource.cs
- BufferAllocator.cs
- Memoizer.cs
- DirectoryRootQuery.cs
- ReaderOutput.cs
- StrokeNodeEnumerator.cs
- SqlDataSourceView.cs
- XmlTextReaderImplHelpers.cs
- PackageDigitalSignatureManager.cs
- StagingAreaInputItem.cs
- Funcletizer.cs
- XmlComment.cs
- TypeConverterMarkupExtension.cs
- WebHttpSecurityElement.cs
- HelpProvider.cs
- Literal.cs
- OutputCacheModule.cs
- ConnectivityStatus.cs
- SoapReflectionImporter.cs
- PixelFormats.cs
- ReadOnlyAttribute.cs
- InternalBufferOverflowException.cs
- PathSegment.cs
- documentsequencetextpointer.cs
- ContentPropertyAttribute.cs
- SqlXml.cs
- SqlConnectionHelper.cs
- OptimalTextSource.cs
- EventTrigger.cs
- VirtualDirectoryMappingCollection.cs
- ObjectParameter.cs
- TimeSpanValidatorAttribute.cs
- _MultipleConnectAsync.cs
- XmlJsonWriter.cs
- SystemIcons.cs
- LateBoundBitmapDecoder.cs
- ButtonColumn.cs
- PerformanceCounterPermissionEntry.cs
- StructuredTypeEmitter.cs
- KoreanLunisolarCalendar.cs
- XhtmlCssHandler.cs
- Vector.cs
- CodeArgumentReferenceExpression.cs
- WebPartDeleteVerb.cs
- StylusPlugin.cs
- LogStore.cs
- ObjectListCommand.cs
- Misc.cs
- EntityModelSchemaGenerator.cs
- FontFamily.cs
- ViewStateException.cs
- StrongName.cs
- SQLGuid.cs
- XPathDocumentBuilder.cs
- CfgParser.cs
- CreateParams.cs
- ParallelTimeline.cs
- _StreamFramer.cs
- DecoderFallback.cs
- DocobjHost.cs
- AttachedPropertiesService.cs
- EntityException.cs
- XmlNotation.cs
- SqlDataSourceSummaryPanel.cs
- ServiceElement.cs
- ApplicationFileParser.cs
- CryptoConfig.cs
- HtmlTextArea.cs
- XmlSchemaIdentityConstraint.cs
- BufferedGraphics.cs
- ReflectionServiceProvider.cs
- WebBrowserNavigatingEventHandler.cs