Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Net / System / Net / NetworkInformation / SystemIcmpV6Statistics.cs / 1 / SystemIcmpV6Statistics.cs
///
/// Provides support for ip configuation information and statistics.
///
///
namespace System.Net.NetworkInformation {
using System.Net.Sockets;
using System;
using System.ComponentModel;
internal enum IcmpV6StatType {
DestinationUnreachable = 1,
PacketTooBig = 2,
TimeExceeded = 3,
ParameterProblem = 4,
EchoRequest = 128,
EchoReply = 129,
MembershipQuery = 130,
MembershipReport = 131,
MembershipReduction = 132,
RouterSolicit = 133,
RouterAdvertisement = 134,
NeighborSolict = 135,
NeighborAdvertisement = 136,
Redirect = 137,
};
/// Icmp statistics for Ipv6.
internal class SystemIcmpV6Statistics:IcmpV6Statistics {
MibIcmpInfoEx stats;
internal SystemIcmpV6Statistics(){
if (!ComNetOS.IsPostWin2K){
throw new PlatformNotSupportedException(SR.GetString(SR.WinXPRequired));
}
uint result = UnsafeNetInfoNativeMethods.GetIcmpStatisticsEx(out stats,AddressFamily.InterNetworkV6);
if (result != IpHelperErrors.Success) {
throw new NetworkInformationException((int)result);
}
}
public override long MessagesSent{get {return (long)stats.outStats.dwMsgs;}}
public override long MessagesReceived{get {return (long)stats.inStats.dwMsgs;}}
public override long ErrorsSent{get {return (long)stats.outStats.dwErrors;}}
public override long ErrorsReceived{get {return (long)stats.inStats.dwErrors;}}
public override long DestinationUnreachableMessagesSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.DestinationUnreachable];
}
}
public override long DestinationUnreachableMessagesReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.DestinationUnreachable];
}
}
public override long PacketTooBigMessagesSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.PacketTooBig];
}
}
public override long PacketTooBigMessagesReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.PacketTooBig];
}
}
public override long TimeExceededMessagesSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.TimeExceeded];
}
}
public override long TimeExceededMessagesReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.TimeExceeded];
}
}
public override long ParameterProblemsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.ParameterProblem];
}
}
public override long ParameterProblemsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.ParameterProblem];
}
}
public override long EchoRequestsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.EchoRequest];
}
}
public override long EchoRequestsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.EchoRequest];
}
}
public override long EchoRepliesSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.EchoReply];
}
}
public override long EchoRepliesReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.EchoReply];
}
}
public override long MembershipQueriesSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.MembershipQuery];
}
}
public override long MembershipQueriesReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.MembershipQuery];
}
}
public override long MembershipReportsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.MembershipReport];
}
}
public override long MembershipReportsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.MembershipReport];
}
}
public override long MembershipReductionsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.MembershipReduction];
}
}
public override long MembershipReductionsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.MembershipReduction];
}
}
public override long RouterAdvertisementsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.RouterAdvertisement];
}
}
public override long RouterAdvertisementsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.RouterAdvertisement];
}
}
public override long RouterSolicitsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.RouterSolicit];
}
}
public override long RouterSolicitsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.RouterSolicit];
}
}
public override long NeighborAdvertisementsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.NeighborAdvertisement];
}
}
public override long NeighborAdvertisementsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.NeighborAdvertisement];
}
}
public override long NeighborSolicitsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.NeighborSolict];
}
}
public override long NeighborSolicitsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.NeighborSolict];
}
}
public override long RedirectsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.Redirect];
}
}
public override long RedirectsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.Redirect];
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
///
/// Provides support for ip configuation information and statistics.
///
///
namespace System.Net.NetworkInformation {
using System.Net.Sockets;
using System;
using System.ComponentModel;
internal enum IcmpV6StatType {
DestinationUnreachable = 1,
PacketTooBig = 2,
TimeExceeded = 3,
ParameterProblem = 4,
EchoRequest = 128,
EchoReply = 129,
MembershipQuery = 130,
MembershipReport = 131,
MembershipReduction = 132,
RouterSolicit = 133,
RouterAdvertisement = 134,
NeighborSolict = 135,
NeighborAdvertisement = 136,
Redirect = 137,
};
/// Icmp statistics for Ipv6.
internal class SystemIcmpV6Statistics:IcmpV6Statistics {
MibIcmpInfoEx stats;
internal SystemIcmpV6Statistics(){
if (!ComNetOS.IsPostWin2K){
throw new PlatformNotSupportedException(SR.GetString(SR.WinXPRequired));
}
uint result = UnsafeNetInfoNativeMethods.GetIcmpStatisticsEx(out stats,AddressFamily.InterNetworkV6);
if (result != IpHelperErrors.Success) {
throw new NetworkInformationException((int)result);
}
}
public override long MessagesSent{get {return (long)stats.outStats.dwMsgs;}}
public override long MessagesReceived{get {return (long)stats.inStats.dwMsgs;}}
public override long ErrorsSent{get {return (long)stats.outStats.dwErrors;}}
public override long ErrorsReceived{get {return (long)stats.inStats.dwErrors;}}
public override long DestinationUnreachableMessagesSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.DestinationUnreachable];
}
}
public override long DestinationUnreachableMessagesReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.DestinationUnreachable];
}
}
public override long PacketTooBigMessagesSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.PacketTooBig];
}
}
public override long PacketTooBigMessagesReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.PacketTooBig];
}
}
public override long TimeExceededMessagesSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.TimeExceeded];
}
}
public override long TimeExceededMessagesReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.TimeExceeded];
}
}
public override long ParameterProblemsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.ParameterProblem];
}
}
public override long ParameterProblemsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.ParameterProblem];
}
}
public override long EchoRequestsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.EchoRequest];
}
}
public override long EchoRequestsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.EchoRequest];
}
}
public override long EchoRepliesSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.EchoReply];
}
}
public override long EchoRepliesReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.EchoReply];
}
}
public override long MembershipQueriesSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.MembershipQuery];
}
}
public override long MembershipQueriesReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.MembershipQuery];
}
}
public override long MembershipReportsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.MembershipReport];
}
}
public override long MembershipReportsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.MembershipReport];
}
}
public override long MembershipReductionsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.MembershipReduction];
}
}
public override long MembershipReductionsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.MembershipReduction];
}
}
public override long RouterAdvertisementsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.RouterAdvertisement];
}
}
public override long RouterAdvertisementsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.RouterAdvertisement];
}
}
public override long RouterSolicitsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.RouterSolicit];
}
}
public override long RouterSolicitsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.RouterSolicit];
}
}
public override long NeighborAdvertisementsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.NeighborAdvertisement];
}
}
public override long NeighborAdvertisementsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.NeighborAdvertisement];
}
}
public override long NeighborSolicitsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.NeighborSolict];
}
}
public override long NeighborSolicitsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.NeighborSolict];
}
}
public override long RedirectsSent{
get {
return stats.outStats.rgdwTypeCount[(long)IcmpV6StatType.Redirect];
}
}
public override long RedirectsReceived{
get {
return stats.inStats.rgdwTypeCount[(long)IcmpV6StatType.Redirect];
}
}
}
}
// 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
- ApplicationGesture.cs
- SqlAliasesReferenced.cs
- PeerTransportListenAddressConverter.cs
- ToolboxBitmapAttribute.cs
- WebEvents.cs
- DiagnosticStrings.cs
- ObjectAnimationBase.cs
- ToolStripStatusLabel.cs
- TdsRecordBufferSetter.cs
- ProviderConnectionPointCollection.cs
- CodeAttachEventStatement.cs
- CollectionViewGroupInternal.cs
- TileBrush.cs
- AssemblyAttributesGoHere.cs
- MonthCalendar.cs
- XamlPathDataSerializer.cs
- RegexCharClass.cs
- MouseGesture.cs
- TableColumnCollection.cs
- SmiSettersStream.cs
- PerformanceCounterManager.cs
- XmlCharType.cs
- MediaPlayerState.cs
- CompilationRelaxations.cs
- JsonDeserializer.cs
- IImplicitResourceProvider.cs
- StreamGeometry.cs
- SystemIPInterfaceProperties.cs
- BaseServiceProvider.cs
- Wildcard.cs
- DetailsViewModeEventArgs.cs
- CryptoApi.cs
- DesignTimeSiteMapProvider.cs
- ToolStripRenderer.cs
- WindowsRebar.cs
- ParserHooks.cs
- AuthorizationSection.cs
- ContentValidator.cs
- IntranetCredentialPolicy.cs
- CodeIdentifiers.cs
- UdpDiscoveryEndpoint.cs
- DocumentApplication.cs
- FontUnitConverter.cs
- DefaultAssemblyResolver.cs
- TextEditorTyping.cs
- QilParameter.cs
- ListBoxAutomationPeer.cs
- CheckedPointers.cs
- ArraySubsetEnumerator.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- Int32RectConverter.cs
- RemoteWebConfigurationHostServer.cs
- HwndAppCommandInputProvider.cs
- SimpleTypeResolver.cs
- SwitchElementsCollection.cs
- TagPrefixAttribute.cs
- PersonalizationProviderCollection.cs
- LabelTarget.cs
- AuthenticationSection.cs
- TextServicesCompartmentEventSink.cs
- XmlQueryRuntime.cs
- CharacterHit.cs
- FixedNode.cs
- SessionPageStatePersister.cs
- XamlVector3DCollectionSerializer.cs
- UserNamePasswordValidator.cs
- PathGradientBrush.cs
- ParameterElementCollection.cs
- ConfigsHelper.cs
- SafeHandles.cs
- NaturalLanguageHyphenator.cs
- ServicePointManager.cs
- Parallel.cs
- ExternalCalls.cs
- GridViewEditEventArgs.cs
- CodeSnippetCompileUnit.cs
- ApplicationServiceHelper.cs
- SHA256Managed.cs
- DbConnectionInternal.cs
- SafeRegistryKey.cs
- ToolConsole.cs
- SecurityIdentifierElement.cs
- X509Certificate2Collection.cs
- ViewCellSlot.cs
- Utilities.cs
- WebRequestModulesSection.cs
- SizeConverter.cs
- WsdlInspector.cs
- ContextQuery.cs
- HtmlHistory.cs
- PrivateFontCollection.cs
- EnvironmentPermission.cs
- DateTimeOffsetConverter.cs
- Scalars.cs
- PathGeometry.cs
- DictionaryEditChange.cs
- CreateUserErrorEventArgs.cs
- SafeFindHandle.cs
- _AcceptOverlappedAsyncResult.cs
- TextRangeAdaptor.cs