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
- ConstrainedGroup.cs
- RTLAwareMessageBox.cs
- Function.cs
- SafeNativeMethodsMilCoreApi.cs
- CodeStatement.cs
- WindowsFormsHelpers.cs
- EnlistmentState.cs
- LockedAssemblyCache.cs
- Command.cs
- XmlSchemaDocumentation.cs
- Profiler.cs
- SecurityTokenTypes.cs
- CompilerError.cs
- TableHeaderCell.cs
- PeerTransportListenAddressValidatorAttribute.cs
- MiniAssembly.cs
- InputReport.cs
- Debug.cs
- CredentialCache.cs
- Serializer.cs
- DataGridViewUtilities.cs
- XmlNode.cs
- CodeDelegateInvokeExpression.cs
- ToolStripSystemRenderer.cs
- SafeArrayTypeMismatchException.cs
- CompilerParameters.cs
- Triplet.cs
- SyndicationItem.cs
- HttpClientCertificate.cs
- BaseUriHelper.cs
- MouseButton.cs
- EmptyCollection.cs
- TreeNodeStyle.cs
- ViewCellRelation.cs
- AffineTransform3D.cs
- ErrorLog.cs
- ComboBoxRenderer.cs
- SqlUtils.cs
- HtmlInputFile.cs
- MsmqInputChannelListenerBase.cs
- QueryException.cs
- TemplateKey.cs
- ScriptingRoleServiceSection.cs
- TextEffectCollection.cs
- SignedPkcs7.cs
- ActiveXContainer.cs
- bidPrivateBase.cs
- NotSupportedException.cs
- XhtmlBasicTextBoxAdapter.cs
- RuleSetDialog.Designer.cs
- WindowsListView.cs
- GlyphRunDrawing.cs
- DataKeyArray.cs
- UInt64Storage.cs
- AnonymousIdentificationModule.cs
- WebPartDeleteVerb.cs
- SqlWebEventProvider.cs
- BitHelper.cs
- ContainerSelectorGlyph.cs
- Page.cs
- MessageSmuggler.cs
- ConfigXmlSignificantWhitespace.cs
- ALinqExpressionVisitor.cs
- CachedRequestParams.cs
- InstallerTypeAttribute.cs
- HwndProxyElementProvider.cs
- DefaultProxySection.cs
- WebPartTracker.cs
- HtmlMeta.cs
- ArgumentOutOfRangeException.cs
- BasicCommandTreeVisitor.cs
- PathData.cs
- arclist.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- PageCatalogPart.cs
- Cursors.cs
- OracleBoolean.cs
- EnumCodeDomSerializer.cs
- QuaternionRotation3D.cs
- Monitor.cs
- BooleanToVisibilityConverter.cs
- Cursors.cs
- SizeValueSerializer.cs
- IntSecurity.cs
- StylusButtonEventArgs.cs
- TableParagraph.cs
- Executor.cs
- ToolStripArrowRenderEventArgs.cs
- TextBreakpoint.cs
- SharedDp.cs
- LinkLabel.cs
- AnnotationStore.cs
- SQLResource.cs
- CompositeKey.cs
- ConvertersCollection.cs
- KeyTime.cs
- XamlHttpHandlerFactory.cs
- TextWriter.cs
- FocusManager.cs
- WindowsSolidBrush.cs