Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / NetworkInformation / TeredoHelper.cs / 1305376 / TeredoHelper.cs
using System.Collections.Generic; using System.ComponentModel; using System.Net.Sockets; using System.Runtime.InteropServices; using System.Security; using System.Threading; namespace System.Net.NetworkInformation { // This class wraps the native API NotifyStableUnicastIpAddressTable. The native function's behavior is: // // 1. If the address table is already stable, it returns ERROR_SUCCESS and a Mib table handle that we must free. // The passed-in callback will never be called, and the cancelHandle is set to NULL. // // 2. If the address table is not stable, it returns ERROR_IO_PENDING. The table handle is set to NULL, // and the cancelHandle is set to a valid handle. The callback will be called (on a native threadpool thread) // EVERY TIME the address table becomes stable until CancelMibChangeNotify2 is called on the cancelHandle // (via cancelHandle.Dispose()). // // CancelMibChangeNotify2 guarantees that, by the time it returns, all calls to the callback will be complete // and that no new calls to the callback will be issued. // // The major concerns of the class are: 1) making sure none of the managed objects needed to handle a native // callback are GC'd before the callback, and 2) making sure no native callbacks will try to call into an unloaded // AppDomain. [SuppressUnmanagedCodeSecurity] internal class TeredoHelper { // Holds a list of all pending calls to NotifyStableUnicastIpAddressTable. Also used as a lock to protect its // contents and impendingAppDomainUnload. private static ListpendingNotifications; // Flag that gets set when an AppDomain unload is imminent. When this is set, no more calls to // NotifyStableUnicastIpAddressTable are allowed. private static bool impendingAppDomainUnload; private readonly Action
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FormsAuthenticationTicket.cs
- PageFunction.cs
- rsa.cs
- DetailsViewCommandEventArgs.cs
- SqlInternalConnectionTds.cs
- X509LogoTypeExtension.cs
- DataBindingCollectionEditor.cs
- SqlXmlStorage.cs
- EnumBuilder.cs
- Visitors.cs
- XmlSchemaImporter.cs
- EmptyEnumerable.cs
- MetadataItemCollectionFactory.cs
- CellTreeNode.cs
- SymmetricSecurityProtocol.cs
- IOException.cs
- MimeReturn.cs
- DataGridColumnHeader.cs
- EffectiveValueEntry.cs
- HtmlLink.cs
- GPRECT.cs
- ImageList.cs
- MetadataException.cs
- SecurityVerifiedMessage.cs
- ScalarConstant.cs
- WebBrowserHelper.cs
- CachingHintValidation.cs
- MenuItemBindingCollection.cs
- ViewManagerAttribute.cs
- ExtensionFile.cs
- CompilationUtil.cs
- ProfileParameter.cs
- WinFormsSpinner.cs
- XomlCompilerHelpers.cs
- DataGridViewRowPostPaintEventArgs.cs
- PocoPropertyAccessorStrategy.cs
- StylusPlugInCollection.cs
- ListViewCancelEventArgs.cs
- NullableLongAverageAggregationOperator.cs
- ObjectListComponentEditor.cs
- CorrelationActionMessageFilter.cs
- BrowsableAttribute.cs
- EFDataModelProvider.cs
- Stream.cs
- RuntimeArgumentHandle.cs
- GeneralTransform2DTo3D.cs
- MemberAssignment.cs
- AlternateView.cs
- WebPermission.cs
- ProxyHelper.cs
- BindUriHelper.cs
- SimpleHandlerFactory.cs
- ToolStripAdornerWindowService.cs
- DataListItem.cs
- DecimalConverter.cs
- ProfileService.cs
- Pens.cs
- LineProperties.cs
- EdmType.cs
- XmlQualifiedName.cs
- complextypematerializer.cs
- Volatile.cs
- TagPrefixInfo.cs
- StateDesigner.cs
- CollectionAdapters.cs
- Focus.cs
- DecimalAnimationBase.cs
- SQLStringStorage.cs
- EntitySetBase.cs
- SafeThemeHandle.cs
- TextStore.cs
- TextBox.cs
- TableFieldsEditor.cs
- IInstanceTable.cs
- AsymmetricAlgorithm.cs
- ZoomPercentageConverter.cs
- SmtpCommands.cs
- WebSysDefaultValueAttribute.cs
- PartBasedPackageProperties.cs
- WebAdminConfigurationHelper.cs
- GridItemProviderWrapper.cs
- CaseInsensitiveComparer.cs
- TreeNode.cs
- UnsafeNativeMethods.cs
- XmlHierarchyData.cs
- XmlILStorageConverter.cs
- HtmlInputPassword.cs
- WebPartDeleteVerb.cs
- Part.cs
- ApplicationHost.cs
- GPStream.cs
- ZipPackagePart.cs
- HandlerMappingMemo.cs
- SmiEventStream.cs
- CodeMethodMap.cs
- RenderCapability.cs
- DataControlFieldCollection.cs
- RoleBoolean.cs
- BulletedListEventArgs.cs
- PartitionResolver.cs