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
- WorkerRequest.cs
- UnsafeNativeMethods.cs
- SerializationStore.cs
- XamlToRtfWriter.cs
- XmlDataSourceView.cs
- PrintDocument.cs
- Clipboard.cs
- SiteMapNodeCollection.cs
- ThreadStartException.cs
- ToolStripItemTextRenderEventArgs.cs
- BlobPersonalizationState.cs
- TcpStreams.cs
- PingReply.cs
- XmlAttributeCache.cs
- CaseInsensitiveComparer.cs
- IpcClientManager.cs
- DataKey.cs
- Visual3DCollection.cs
- XmlQueryCardinality.cs
- SortableBindingList.cs
- QilReference.cs
- VirtualizingStackPanel.cs
- FacetDescriptionElement.cs
- XNameTypeConverter.cs
- StylusDownEventArgs.cs
- NavigatingCancelEventArgs.cs
- TimeSpanMinutesConverter.cs
- CorrelationTokenTypeConvertor.cs
- FontDifferentiator.cs
- RequestUriProcessor.cs
- StructuralCache.cs
- FlowDocumentView.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- XmlAttribute.cs
- BStrWrapper.cs
- ValidatedControlConverter.cs
- StateWorkerRequest.cs
- XmlWriter.cs
- SelectedGridItemChangedEvent.cs
- PointLight.cs
- EntityReference.cs
- EdmType.cs
- ExternalCalls.cs
- BrowserCapabilitiesCodeGenerator.cs
- DataShape.cs
- InternalControlCollection.cs
- MemberJoinTreeNode.cs
- OleDbPermission.cs
- PowerModeChangedEventArgs.cs
- TextServicesProperty.cs
- StreamWithDictionary.cs
- XmlSchemaAll.cs
- safesecurityhelperavalon.cs
- XmlDataSource.cs
- UIElementHelper.cs
- CacheDict.cs
- Event.cs
- BindingValueChangedEventArgs.cs
- IndexedSelectQueryOperator.cs
- ToolBarOverflowPanel.cs
- TextAutomationPeer.cs
- TextAdaptor.cs
- Documentation.cs
- DiscoveryMessageSequenceGenerator.cs
- XmlSchemaProviderAttribute.cs
- OdbcConnectionOpen.cs
- AuthorizationSection.cs
- ModulesEntry.cs
- RuleCache.cs
- ToolStripSplitStackLayout.cs
- ConfigXmlText.cs
- AmbiguousMatchException.cs
- ConnectionsZone.cs
- LookupNode.cs
- IsolatedStorage.cs
- TakeQueryOptionExpression.cs
- DataSetViewSchema.cs
- RuntimeConfig.cs
- HtmlInputSubmit.cs
- X509PeerCertificateAuthenticationElement.cs
- Helpers.cs
- PointAnimationBase.cs
- CodeGen.cs
- RequestQueue.cs
- TextLineBreak.cs
- RemotingAttributes.cs
- StringOutput.cs
- FrameworkEventSource.cs
- EdmRelationshipRoleAttribute.cs
- AttributeQuery.cs
- EntityDataSourceWizardForm.cs
- MetadataCollection.cs
- WorkflowPageSetupDialog.cs
- MethodImplAttribute.cs
- ImageListStreamer.cs
- XmlProcessingInstruction.cs
- SqlDataSourceAdvancedOptionsForm.cs
- UnsafeNetInfoNativeMethods.cs
- mactripleDES.cs
- FilteredDataSetHelper.cs