Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- Stopwatch.cs
- JournalEntryListConverter.cs
- KeyValuePair.cs
- SqlDataSourceRefreshSchemaForm.cs
- CachedTypeface.cs
- Transactions.cs
- BCryptSafeHandles.cs
- FileUpload.cs
- JsonWriter.cs
- DataViewSetting.cs
- ScrollItemPattern.cs
- TextEditor.cs
- SspiSecurityTokenProvider.cs
- GroupStyle.cs
- XmlSchemaSimpleTypeRestriction.cs
- StorageBasedPackageProperties.cs
- ToolStripInSituService.cs
- XmlSchemas.cs
- SystemResources.cs
- ArraySet.cs
- TemplatedWizardStep.cs
- CellConstant.cs
- EncodingInfo.cs
- FirstMatchCodeGroup.cs
- XmlDataImplementation.cs
- Stylus.cs
- EntityParameter.cs
- XPathScanner.cs
- ParseHttpDate.cs
- StringStorage.cs
- HtmlTable.cs
- Sql8ExpressionRewriter.cs
- DataKey.cs
- RunInstallerAttribute.cs
- DrawingCollection.cs
- ColorAnimation.cs
- RemotingServices.cs
- NameSpaceExtractor.cs
- GraphicsContainer.cs
- Menu.cs
- EnumCodeDomSerializer.cs
- CultureMapper.cs
- EntityContainer.cs
- EdmProperty.cs
- BitmapCodecInfo.cs
- shaperfactoryquerycachekey.cs
- TextRunTypographyProperties.cs
- ValidatorUtils.cs
- HttpServerProtocol.cs
- MaterialGroup.cs
- PenThreadWorker.cs
- OdbcUtils.cs
- TraceContextEventArgs.cs
- WizardPanelChangingEventArgs.cs
- NopReturnReader.cs
- ButtonBaseAutomationPeer.cs
- RadialGradientBrush.cs
- WebPartsPersonalizationAuthorization.cs
- HttpCacheVaryByContentEncodings.cs
- CapacityStreamGeometryContext.cs
- DefaultSerializationProviderAttribute.cs
- Codec.cs
- FilterQueryOptionExpression.cs
- TableChangeProcessor.cs
- ArrayList.cs
- PolicyDesigner.cs
- COM2ICategorizePropertiesHandler.cs
- CallSiteOps.cs
- DocumentXPathNavigator.cs
- ConfigurationSectionGroupCollection.cs
- EntityContainerEmitter.cs
- SafeThreadHandle.cs
- BasicAsyncResult.cs
- SocketException.cs
- LayoutTable.cs
- Constraint.cs
- ItemContainerGenerator.cs
- PasswordDeriveBytes.cs
- WsatStrings.cs
- SchemaImporter.cs
- WebPartEditorApplyVerb.cs
- FrameworkRichTextComposition.cs
- DesignTimeTemplateParser.cs
- ActivityInfo.cs
- CharUnicodeInfo.cs
- StreamHelper.cs
- CompositeScriptReferenceEventArgs.cs
- ButtonField.cs
- BaseTemplateParser.cs
- XmlSchemaAppInfo.cs
- Border.cs
- processwaithandle.cs
- CompletedAsyncResult.cs
- EffectiveValueEntry.cs
- SortedList.cs
- EntityDataSourceChangingEventArgs.cs
- RequestUriProcessor.cs
- EntityKey.cs
- CodeTypeReferenceExpression.cs
- ProfileSection.cs