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
- PathSegmentCollection.cs
- TableRowsCollectionEditor.cs
- CaseExpr.cs
- EntityDataSourceDesignerHelper.cs
- PtsCache.cs
- ObjectSet.cs
- QueueProcessor.cs
- SiblingIterators.cs
- XhtmlBasicValidationSummaryAdapter.cs
- FormViewDeletedEventArgs.cs
- MenuItem.cs
- ToolStripMenuItemDesigner.cs
- HtmlWindow.cs
- DrawingVisual.cs
- TimeSpanValidatorAttribute.cs
- MetadataArtifactLoaderResource.cs
- CompModSwitches.cs
- DataGridBeginningEditEventArgs.cs
- XmlSchemaGroup.cs
- XmlSchemaSimpleContent.cs
- Bidi.cs
- SQLDateTimeStorage.cs
- TdsEnums.cs
- FamilyMap.cs
- DebugTrace.cs
- ImpersonateTokenRef.cs
- CopyNodeSetAction.cs
- AssociationEndMember.cs
- NotImplementedException.cs
- DbParameterHelper.cs
- StringUtil.cs
- Expander.cs
- SmtpCommands.cs
- Pen.cs
- ModelPropertyDescriptor.cs
- AliasGenerator.cs
- SoapTypeAttribute.cs
- BitmapMetadataBlob.cs
- SrgsText.cs
- LinqDataSourceContextEventArgs.cs
- DocumentXPathNavigator.cs
- Control.cs
- OutputWindow.cs
- ObjectListCommand.cs
- ParameterCollection.cs
- EntitySet.cs
- HttpRequest.cs
- _SslStream.cs
- VirtualPath.cs
- JournalEntry.cs
- HuffmanTree.cs
- ExpressionBuilder.cs
- TextSelectionHelper.cs
- WebPartsSection.cs
- AlphaSortedEnumConverter.cs
- Debug.cs
- ColorMatrix.cs
- DataRecordObjectView.cs
- CodeAttachEventStatement.cs
- NameObjectCollectionBase.cs
- CopyAttributesAction.cs
- EmptyTextWriter.cs
- InkPresenter.cs
- TransportManager.cs
- externdll.cs
- OneToOneMappingSerializer.cs
- ToolBarButtonClickEvent.cs
- ScriptRegistrationManager.cs
- XmlSerializerNamespaces.cs
- MULTI_QI.cs
- WSSecurityPolicy11.cs
- HtmlFormParameterWriter.cs
- Panel.cs
- StreamInfo.cs
- FormViewModeEventArgs.cs
- ImportCatalogPart.cs
- XmlSchemaExternal.cs
- XsdDateTime.cs
- MessageSecurityVersionConverter.cs
- SystemIcons.cs
- SiteMap.cs
- SinglePageViewer.cs
- GestureRecognitionResult.cs
- TextSegment.cs
- FormClosingEvent.cs
- CompositeFontFamily.cs
- DrawItemEvent.cs
- ReachSerializerAsync.cs
- TextEndOfSegment.cs
- AuthenticationModuleElement.cs
- ServerIdentity.cs
- StoreItemCollection.cs
- SqlDependencyUtils.cs
- BufferAllocator.cs
- MediaContextNotificationWindow.cs
- PageCopyCount.cs
- InlineUIContainer.cs
- SwitchElementsCollection.cs
- RuntimeIdentifierPropertyAttribute.cs
- RelationshipEndCollection.cs