Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- DependencyObjectProvider.cs
- AnimationTimeline.cs
- RegexWriter.cs
- UnsafeNativeMethodsCLR.cs
- SimpleHandlerBuildProvider.cs
- IsolatedStorageFileStream.cs
- ReadOnlyHierarchicalDataSourceView.cs
- WindowsRichEdit.cs
- SetterBaseCollection.cs
- LinqDataSourceContextData.cs
- ApplicationProxyInternal.cs
- DocComment.cs
- TableLayoutRowStyleCollection.cs
- StaticFileHandler.cs
- SystemIPv4InterfaceProperties.cs
- RecordManager.cs
- SpotLight.cs
- Matrix.cs
- OneOfConst.cs
- EntityDataReader.cs
- SamlAuthorizationDecisionClaimResource.cs
- DirectionalLight.cs
- AttachedProperty.cs
- FormsAuthenticationConfiguration.cs
- HttpRuntimeSection.cs
- RemoveStoryboard.cs
- TransformerTypeCollection.cs
- BehaviorEditorPart.cs
- SourceItem.cs
- UpdateRecord.cs
- ConstructorNeedsTagAttribute.cs
- RelativeSource.cs
- HttpListenerRequest.cs
- CompositeTypefaceMetrics.cs
- HttpDateParse.cs
- SettingsAttributes.cs
- ValueTypeIndexerReference.cs
- HttpPostClientProtocol.cs
- DynamicScriptObject.cs
- ColumnBinding.cs
- SafeRegistryHandle.cs
- TypeConverterAttribute.cs
- DefaultTextStore.cs
- NameTable.cs
- VirtualDirectoryMapping.cs
- _IPv6Address.cs
- FilterQueryOptionExpression.cs
- PresentationSource.cs
- SettingsAttributeDictionary.cs
- PreservationFileReader.cs
- TableLayoutRowStyleCollection.cs
- XmlNotation.cs
- RotateTransform.cs
- WebServiceEnumData.cs
- XmlNamespaceMapping.cs
- TemplatedWizardStep.cs
- XPathMultyIterator.cs
- DateTimeValueSerializerContext.cs
- DecoderBestFitFallback.cs
- WindowsListBox.cs
- PrimitiveCodeDomSerializer.cs
- DefaultPropertyAttribute.cs
- JoinElimination.cs
- SecurityIdentifierConverter.cs
- ContextMarshalException.cs
- AppDomainManager.cs
- EndpointInstanceProvider.cs
- HandlerFactoryCache.cs
- Expr.cs
- COAUTHINFO.cs
- WindowsRichEditRange.cs
- mactripleDES.cs
- RoleGroupCollection.cs
- ButtonBaseAdapter.cs
- UserPersonalizationStateInfo.cs
- PropertyManager.cs
- Utils.cs
- Literal.cs
- ControlIdConverter.cs
- x509utils.cs
- FileReservationCollection.cs
- ListParaClient.cs
- TimeSpanHelper.cs
- TextElement.cs
- BitConverter.cs
- RSAOAEPKeyExchangeDeformatter.cs
- ExpandSegmentCollection.cs
- XslNumber.cs
- ParameterElement.cs
- Update.cs
- PartitionResolver.cs
- QueueProcessor.cs
- xdrvalidator.cs
- SequenceQuery.cs
- PathStreamGeometryContext.cs
- AuthorizationRule.cs
- FormClosedEvent.cs
- ClientScriptManagerWrapper.cs
- SerialReceived.cs
- sitestring.cs