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
- Calendar.cs
- DoubleCollectionConverter.cs
- ControlCachePolicy.cs
- DataServiceRequest.cs
- WindowsListViewScroll.cs
- SizeChangedEventArgs.cs
- CultureTable.cs
- ClientConfigPaths.cs
- WebAdminConfigurationHelper.cs
- RemoteCryptoSignHashRequest.cs
- HttpRawResponse.cs
- PathFigureCollection.cs
- ReadOnlyDataSourceView.cs
- URLString.cs
- DisplayNameAttribute.cs
- ObjectTag.cs
- ResourcePermissionBase.cs
- FixedBufferAttribute.cs
- EncryptedType.cs
- Point.cs
- HtmlEmptyTagControlBuilder.cs
- _AcceptOverlappedAsyncResult.cs
- ListenerPerfCounters.cs
- PowerStatus.cs
- PagedDataSource.cs
- WorkflowMarkupSerializationException.cs
- ToolStripItemClickedEventArgs.cs
- Nodes.cs
- BindingBase.cs
- EnumBuilder.cs
- DataTableMappingCollection.cs
- PropertyOverridesDialog.cs
- DomNameTable.cs
- SerializationException.cs
- StrokeCollectionConverter.cs
- XmlDataSourceView.cs
- MailFileEditor.cs
- CompletionBookmark.cs
- WebCodeGenerator.cs
- UnsafeNativeMethods.cs
- ScriptReference.cs
- BamlLocalizableResource.cs
- BamlResourceSerializer.cs
- DependencyPropertyKey.cs
- Merger.cs
- MergeFailedEvent.cs
- SqlUDTStorage.cs
- ContentFilePart.cs
- SignatureToken.cs
- WindowManager.cs
- ValidatedControlConverter.cs
- DescriptionAttribute.cs
- WorkflowFileItem.cs
- PlatformCulture.cs
- ObjectDataSourceView.cs
- ConfigurationManagerInternal.cs
- FieldMetadata.cs
- HMACSHA384.cs
- WorkflowWebService.cs
- CustomAssemblyResolver.cs
- TextEditorTyping.cs
- RoleBoolean.cs
- UnsafeNativeMethodsPenimc.cs
- InstanceValue.cs
- TreeNodeCollection.cs
- ApplicationBuildProvider.cs
- WindowsListBox.cs
- Win32Exception.cs
- TemplateBindingExtension.cs
- DataFieldCollectionEditor.cs
- HttpDebugHandler.cs
- CompensateDesigner.cs
- ZoneIdentityPermission.cs
- CanonicalFontFamilyReference.cs
- ReadOnlyCollectionBase.cs
- NonParentingControl.cs
- ToolStripItemClickedEventArgs.cs
- safelinkcollection.cs
- CaretElement.cs
- RSACryptoServiceProvider.cs
- ZipIOLocalFileDataDescriptor.cs
- AttachedPropertyBrowsableAttribute.cs
- SafeNativeMethods.cs
- XPathScanner.cs
- StringReader.cs
- WebPartConnectVerb.cs
- CodePropertyReferenceExpression.cs
- UniformGrid.cs
- OutputCacheSettings.cs
- Translator.cs
- ServicePoint.cs
- BStrWrapper.cs
- RightsManagementEncryptedStream.cs
- Viewport3DVisual.cs
- FtpRequestCacheValidator.cs
- Encoder.cs
- ApplicationSettingsBase.cs
- Shared.cs
- BindingGroup.cs
- TypeHelper.cs